xcodebuild 命令无法生成 iPA

Posted

技术标签:

【中文标题】xcodebuild 命令无法生成 iPA【英文标题】:xcodebuild commands failed to generate iPA 【发布时间】:2018-03-14 07:09:24 【问题描述】:

在 xcode 9.2 中,我使用自动签名生成存档,开发人员证书和配置文件是通过 xcodebuild 命令使用 -allowProvisioningUpdates 密钥生成的。

但是当通过 xcodebuild 命令生成 iPA 时,该存档会出现以下错误。

Details:  Unable to close provisioning ledger entry because not all of its subentries are closed
Object:   <IDEProvisioningLedgerEntry: 0x7f925ced3840>
Method:   -closeWithError:
Thread:   <NSThread: 0x7f925a734df0>number = 4, name = (null)
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.

使用 Xcodebuild 命令生成存档

xcodebuild -exportArchive -archivePath '/path/to/archive/Test.xcarchive' -exportOptionsPlist '/path/to/exportOptions/ExportOptions.plist' -exportPath '/path/to/archive/' PRODUCT_BUNDLE_IDENTIFIER="bundle_id" DEVELOPMENT_TEAM="development_team_id" -allowProvisioningUpdates

并导出 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>ad-hoc</string>
    <key>signingCertificate</key>
    <string>iPhone Developer</string>
    <key>signingStyle</key>
    <string>automatic</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>TEAM_ID</string>
    <key>uploadBitcode</key>
    <true/>
    <key>uploadSymbols</key>
    <true/>
</dict>
</plist>

使用 Xcode GUI 一切正常,正在生成开发人员、分发证书和配置文件

但是当在终端中使用 xcodebuild 时,只有开发者证书会在归档时生成和开发者配置文件。但是分发证书不是通过 xcodbuild 生成的。

谁能帮帮我!

【问题讨论】:

你试过快车道吗?很有帮助 @iWheelBuy 你知道我为什么会收到这个错误吗? 我建议使用 github.com/openbakery/gradle-xcodePlugin 我在我的项目中使用了 2 年,并且它在我更新 Xcode 时有效 @iWheelBuy 我正在使用 fastlane,它会产生同样的错误。 有谁知道如何解决这个问题?对我来说,分发证书没有创建,所以使用-allowProvisioningUpdates 选项然后得到这个错误。 【参考方案1】:

我希望它有用。

xcodebuild archive -workspace "xxx.xcworkspace" -scheme "xxx" -configuration Debug -archivePath build/xxx.xcarchive

xcodebuild -exportArchive -archivePath build/xxx.xcarchive -exportPath build/xxx -exportOptionsPlist ExportOptions.plist

【讨论】:

【参考方案2】:

在我的组织中,我们有不同的 team_id 用于开发和分发

如果您的情况相同,那么在 xcodebuild 命令中指定分发团队 ID 可能会解决问题。

【讨论】:

以上是关于xcodebuild 命令无法生成 iPA的主要内容,如果未能解决你的问题,请参考以下文章

如何在 xcodebuild 命令中传递配置文件名称?

xcodebuild 命令无法与动态可可触摸框架一起正常工作

无法在安装了命令行工具的 Mavericks 上使用 xcodebuild

xcodebuild 存档未通过 ITMS 验证

xcodebuild - 设置构建目录不会生成 dSYM

错误 无法构建 iOS 项目。运行“xcodebuild”命令,但它以错误代码 65 退出