ios - Jenkins无法导出应用商店ipa

标签 ios xcode jenkins

ARCHIVE 过程 始终成功,但EXPORT 过程 则不然。

事情是这样的,当导出类型为development时,它总是成功。

但是当我将导出类型更改为 app-store 时,出现了错误。

这是错误消息。

10:01:52 ** ARCHIVE SUCCEEDED **
10:01:52 
10:01:52 Cleaning up previously generated .ipa files
10:01:52 Cleaning up previously generated .dSYM.zip files
10:01:52 Packaging IPA
10:01:52 [XCodeProj] $ /usr/libexec/PlistBuddy -c "Print :ApplicationProperties:CFBundleVersion" /Users/Shared/Jenkins/Home/workspace/artopia/artopia-iOS/XCodeProj/build/Release-iphoneos/Unity-iPhone.xcarchive/Info.plist
10:01:52 [XCodeProj] $ /usr/libexec/PlistBuddy -c "Print :ApplicationProperties:CFBundleShortVersionString" /Users/Shared/Jenkins/Home/workspace/artopia/artopia-iOS/XCodeProj/build/Release-iphoneos/Unity-iPhone.xcarchive/Info.plist
10:01:52 Packaging Unity-iPhone.xcarchive => /Users/Shared/Jenkins/Home/workspace/artopia/artopia-iOS/artifacts/jenkins-Release-app-store-364.ipa
10:01:52 [XCodeProj] $ /usr/bin/xcodebuild -exportArchive -archivePath /Users/Shared/Jenkins/Home/workspace/artopia/artopia-iOS/XCodeProj/build/Release-iphoneos/Unity-iPhone.xcarchive -exportPath /Users/Shared/Jenkins/Home/workspace/artopia/artopia-iOS/artifacts -exportOptionsPlist /Users/Shared/Jenkins/Home/workspace/artopia/artopia-iOS/artifacts/app-store2477P575MMExport.plist
10:01:52 2018-01-09 10:01:52.598 xcodebuild[3570:174459] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/2w/320q_j1s5x10tmvq2rmwgx3c000086/T/Unity-iPhone_2018-01-09_10-01-52.597.xcdistributionlogs'.
10:01:53 2018-01-09 10:01:53.800 xcodebuild[3570:174459] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7f89ce77b200>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors=(
10:01:53     "Error Domain=IDEProfileLocatorErrorDomain Code=1 \"No profiles for 'com.pantheon.artopia' were found\" UserInfo={NSLocalizedDescription=No profiles for 'com.pantheon.artopia' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS App Store provisioning profiles matching 'com.pantheon.artopia'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild.}"
10:01:53 )}
10:01:53 error: exportArchive: No profiles for 'com.pantheon.artopia' were found
10:01:53 
10:01:53 Error Domain=IDEProfileLocatorErrorDomain Code=1 "No profiles for 'com.pantheon.artopia' were found" UserInfo={NSLocalizedDescription=No profiles for 'com.pantheon.artopia' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS App Store provisioning profiles matching 'com.pantheon.artopia'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild.}
10:01:53 
10:01:53 ** EXPORT FAILED **

错误消息表明我的应用没有正确的配置文件。

但我只是为我的应用程序制作了两个应用程序商店分发配置文件,一个用于 com.pantheon.artopia,另一个用于通配符。

我实际上下载了它们并将它们复制到 Jenkins 的配置文件文件夹中。

它还建议将 -allowProvisioningUpdates 放入 xcodebuild,我实际上做到了。

但最基本的是 -allowProvisioningUpdates 只传递到 archive 步骤,而不是 export 步骤。

那么我该如何解决这个问题,我需要您的建议。

我的 Jenkins 设置是:enter image description here enter image description here enter image description here

最佳答案

在Xcode Plugin的“General build settings”中,取消选中步骤“Pack application, build and sign .ipa?”,并添加一个“Execute Shell”步骤。

shell脚本很简单:

/usr/bin/xcodebuild -exportArchive -archivePath "/Users/Shared/Jenkins/Home/workspace/artopia/artopia-iOS/XCodeProj/build/Debug-iphoneos/Unity-iPhone.xcarchive" -exportPath "/Users/Shared/Jenkins/Home/workspace/artopia/artopia-iOS/artifacts" -exportOptionsPlist "/Users/Shared/Jenkins/Home/workspace/artopia/artopia-iOS/exportoptions/ExportOptions-"${ExportType}".plist" -allowProvisioningUpdates

您应该提供的唯一内容是 exportoptions.plist,您可以在自己的 Xcode Export 目录中找到它。

您可以在 https://github.com/fastlane/fastlane/issues/9589 中找到更多信息

关于ios - Jenkins无法导出应用商店ipa,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48161171/

相关文章:

git - 如何通过 scm 更改触发 jenkins 管道作业?

ios - AIR for iOS -Quick Publish 与 Ad Hoc -优化区别?

ios - UIBarButtonItem 的单击事件似乎在 MonoTouch 中不起作用

swift - UITextField、textRect、Xcode 版本 10.0、部署目标 12.0、Swift 4.2

xcode - Bool 不是 ObjCBool​​ 的子类型 - swift 2 beta 5

linux - Jenkins 到 git Windows master/Linux slave 的路径

Jenkins - 从 Artifactory 下载并计算出的 MD5 校验和与原始值不同

ios - 以已插入收件人(我)的电子邮件形式发送文本?

ios - 无法在 Swift 的 UITextFieldDelegate 类初始值设定项中使用 TextField

swift - 由于总线错误 : 10,Xcode 无法构建项目