使用 Jenkins 和 Xcode 7 通过 TestFlight 构建 iOS 应用程序并分发 .ipa
Build iOS app and distribute .ipa via TestFlight with Jenkins and Xcode 7
Apple 发布了 Xcode 7 更新,再次破坏了一切。
以前,我们必须处理
ResourceRules.plist: cannot read resources
通过使用描述的 hack 问题,例如,here. Some people wonder 为什么这甚至首先发生了。
但是,在 Xcode 7 更新中,他们通过在设置此选项时给出此错误来禁止使用 Code Signing Resource Rules Path
:
ERROR ITMS-90339: "This bundle is invalid. The Info.plist
contains an invalid key 'CFBundleResourceSpecification' in bundle
这个 正是关于这个问题的答案,建议从构建设置中删除这个选项。你猜怎么着,删除后弹出第一个错误,所以我们发现自己陷入了循环。
我的问题(当然除了我们为什么会陷入这种混乱之外)是:
我们如何解决这两个问题,以便 iOS 在 Jenkins 和 Xcode 7 中构建并随后上传 TestFlight?
看看这个:
如果您不确定这是一个错误,您也可以在这里获得确认:http://cutting.io/posts/packaging-ios-apps-from-the-command-line/
从 Xcode 7 开始,我们应该使用 xcodebuild
而不是 PackageApplication
来生成 .ipa 文件。
xcodebuild 有一个新的 -exportArchive
选项来创建一个更像 Xcode Organizer 的 .ipa。
详情请看这里的答案:
这两个命令对我来说非常有效:
创建存档: xcodebuild -workspace "/path/to/something.xcworkspace" -scheme "some enterprise" -configuration Release -CODE_SIGN_IDENTITY="your identity" PROVISIONING_PROFILE="61xyz111-22x0-2345-123x-xyxxxxxx" archive -archivePath "/where/you/want/the/archive/xyz.xcarchive"
生成 IPA: xcodebuild -exportArchive -exportFormat IPA -exportProvisioningProfile "Name of your profile" -archivePath "/where/you/saved/the/archive/xyz.xcarchive" -exportPath " /where/you/want/the/IPA/xyz.ipa
我通过更改 Jenkins 构建设置解决了同样的问题:
转到配置>高级Xcode构建选项并添加到自定义xcode构建参数
CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
Apple 发布了 Xcode 7 更新,再次破坏了一切。
以前,我们必须处理
ResourceRules.plist: cannot read resources
通过使用描述的 hack 问题,例如,here. Some people wonder 为什么这甚至首先发生了。
但是,在 Xcode 7 更新中,他们通过在设置此选项时给出此错误来禁止使用 Code Signing Resource Rules Path
:
ERROR ITMS-90339: "This bundle is invalid. The Info.plist contains an invalid key 'CFBundleResourceSpecification' in bundle
这个
我的问题(当然除了我们为什么会陷入这种混乱之外)是:
我们如何解决这两个问题,以便 iOS 在 Jenkins 和 Xcode 7 中构建并随后上传 TestFlight?
看看这个:
如果您不确定这是一个错误,您也可以在这里获得确认:http://cutting.io/posts/packaging-ios-apps-from-the-command-line/
从 Xcode 7 开始,我们应该使用 xcodebuild
而不是 PackageApplication
来生成 .ipa 文件。
xcodebuild 有一个新的 -exportArchive
选项来创建一个更像 Xcode Organizer 的 .ipa。
详情请看这里的答案:
这两个命令对我来说非常有效:
创建存档: xcodebuild -workspace "/path/to/something.xcworkspace" -scheme "some enterprise" -configuration Release -CODE_SIGN_IDENTITY="your identity" PROVISIONING_PROFILE="61xyz111-22x0-2345-123x-xyxxxxxx" archive -archivePath "/where/you/want/the/archive/xyz.xcarchive"
生成 IPA: xcodebuild -exportArchive -exportFormat IPA -exportProvisioningProfile "Name of your profile" -archivePath "/where/you/saved/the/archive/xyz.xcarchive" -exportPath " /where/you/want/the/IPA/xyz.ipa
我通过更改 Jenkins 构建设置解决了同样的问题: 转到配置>高级Xcode构建选项并添加到自定义xcode构建参数
CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist