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 命令无法与动态可可触摸框架一起正常工作