Xcode 9.2 存档成功但无法导出 IPA

Posted

技术标签:

【中文标题】Xcode 9.2 存档成功但无法导出 IPA【英文标题】:Xcode 9.2 Archive Succeed but unable to Export IPA 【发布时间】:2018-02-06 18:02:11 【问题描述】:

我正在尝试为 AdhocProd 的 Enterprise ios Build 持续集成。使用以下命令进行构建和存档。

构建命令:

    /usr/bin/xcodebuild -workspace "Project.xcworkspace" -scheme 
    "ProjectiOSPROD" -archivePath build/ProjectiOS -configuration Release 
    archive CODE_SIGN_STYLE=Manual 
   PROVISIONING_PROFILE=”CompanyNameProdAdhocDistribution” 
   CODE_SIGNING_IDENTITY="iPhone Developer: Build Machine(XXXXXX)" 
    PRODUCT_BUNDLE_IDENTIFIER="com.Companyname.prod.ProjectiOS"

输出: ** 存档成功 **

导出命令:

/usr/bin/xcodebuild -exportArchive -archivePath "build/ProjectiOS.xcarchive" -exportPath "build/ProjectiOS.ipa" -exportOptionsPlist"../../ExportOptions.plist"

这个 Plist 是从 xcode IDE 获取的 ExportOptions.Plist。并将其用于詹金斯的工作空间

输出:

error: exportArchive: SDWebImage.framework does not support provisioning profiles.

Error Domain=IDEProvisioningErrorDomain Code=10 "SDWebImage.framework does not support provisioning profiles." UserInfo=NSLocalizedDescription=SDWebImage.framework does not support provisioning profiles., NSLocalizedRecoverySuggestion=SDWebImage.framework does not support provisioning profiles, but provisioning profile CompanyNameProdAdhocDistribution has been manually specified. Remove this item from the "provisioningProfiles" dictionary in your Export Options property list.

error: exportArchive: Stripe.framework does not support provisioning profiles.

Error Domain=IDEProvisioningErrorDomain Code=10 "Stripe.framework does not support provisioning profiles." UserInfo=NSLocalizedDescription=Stripe.framework does not support provisioning profiles., NSLocalizedRecoverySuggestion=Stripe.framework does not support provisioning profiles, but provisioning profile CompanyNameProdAdhocDistribution has been manually specified. Remove this item from the "provisioningProfiles" dictionary in your Export Options property list.

provisioningProfiles 字典已存在于属性列表中。如果我删除了它,它会说将它添加到属性列表中。

任何建议将不胜感激。

【问题讨论】:

【参考方案1】: 您必须使用 Xcode9.2 手动生成和导出 IPA。这将在导出的文件夹中创建一个名为 ExportOptions.plist 的文件。 将该文件复制到工作区根文件夹。

在 Execute shell 中编写以下命令。

xcodebuild -exportArchive -archivePath $WORKSPACE/build/YourProject.xcarchive -exportPath $JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_NUMBER/archive -exportOptionsPlist $WORKSPACE/ExportOptions.plist

【讨论】:

以上是关于Xcode 9.2 存档成功但无法导出 IPA的主要内容,如果未能解决你的问题,请参考以下文章

xcode server bot存档导出方法

Xcode 7 无法在 El Capitan 中导出 ipa

为啥应用存档在 iOS、swift、xcode 9.2 中使用自定义框架失败

Xcode 8 无法导出用于 Ad Hoc 分发的存档构建

存档成功,但导出失败:cordova build ios --release

xcode 项目构建成功但存档时:bitcode 包可以