Jenkins自动化iOS构建中缺少SwiftSupport文件夹

3

目前我遇到了一个问题,当Jenkins执行作业生成一个.ipa文件进行测试提交时,苹果会发送以下电子邮件:

我们发现您最近提交的“XXXXX”存在一个或多个问题。为了处理您的提交,必须纠正以下问题:

无效的Swift支持 - 缺少SwiftSupport文件夹。使用当前公共(GM)版本的Xcode重新构建您的应用程序并重新提交它。

一旦这些问题得到纠正,您就可以重新发送已更正的二进制文件。

我打开了上传的.ipa文件,确实没有找到这个文件夹。 所以我尝试手动构建... 我使用与Jenkins相同的工作区手动生成要上传到AppStore的构建,一切都很顺利...

自动化构建可能存在什么问题? Jenkins可能漏掉了哪一步?

是否有人遇到了相同的问题?

2个回答

3

归档应用程序

xcodebuild \
-workspace "${WORKSPACE_FILE}" \ # only if you are using workspace
-scheme "${SCHEME_NAME}" \
-sdk "${TARGET_SDK}" \
-archivePath "${PROJDIR}/Build/${SCHEME_NAME}.xcarchive" \
-configuration Release \
archive

将归档文件导出为ipa文件

xcodebuild \
-exportArchive \
-archivePath "${PROJDIR}/Build/${SCHEME_NAME}.xcarchive" \
-exportOptionsPlist "${PROJDIR}/exportOptions.plist" \
-exportPath "${PROJDIR}/Release"

exportOptions.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>app-store</string>
</dict>
</plist>

1
你是否在xcodebuild命令中指定了-exportOptionsPlist选项?
请参考xcodebuild -help查看可用的密钥,但是您可能需要一个plist文件,至少将method密钥设置为“app-store”,例如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>app-store</string>
</dict>
</plist>

你是说要将“method/app-store”添加到应用程序的plist文件中吗?还是另一个不同的plist文件? - Pedro
@Pedro 这是一个不同的 plist 文件,使用 -exportOptionsPlist 开关传递给 xcodebuild。 - Jon N

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接