Xcode 11导出IPA时出错,未找到“ my.bundle.id”的配置文件


12

我正在使用Xcode构建.ipa导出文件以提交给Apple。从Xcode 10升级到Xcode 11之前,我一直做得很成功。

我们遇到的一些错误表明,我们需要完全卸载Xcode,因为我们以前有beta版本,而旧版本的Xcode beta可能是造成此问题的原因。我决定只是通过系统重置来擦除整个Mac,以免Xcode Beta或其设置的任何副本出现在计算机上。因此,它现在是Mac OS的全新安装。我已经重新安装了Xcode。

我已将旧证书导入到钥匙串中,并验证我仅列出了有效证书。

我运行两个命令。我首先创建一个档案。然后,我使用存档导出ipa:

xcodebuild -allowProvisioningUpdates -workspace my_app.xcworkspace -scheme XXXX -archivePath build-dev/XXXX.xcarchive archive
xcodebuild -exportArchive -archivePath build-dev/XXXX.xcarchive -exportOptionsPlist release.plist -exportPath build-dev

请注意,我已将方案替换为XXXX,并且示例中的捆绑包ID已替换为“ my.bundle.id”。

此过程适用于开发.ipa。但是,当我创建Testflight或Production .ipa时出现错误。

第一个命令运行没有错误,并且我在“ build-dev / XXX.archive”中创建了存档文件。第二条命令生成错误:

2019-09-30 12:11:46.444 xcodebuild[10674:326155] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/10/8g5xrhr56wz6sgttzh0_s8fr0000gn/T/XXXX_2019-09-30_12-11-46.444.xcdistributionlogs'.

2019-09-30 12:11:56.534 xcodebuild[10674:326208]  DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-14936/IDEFoundation/Provisioning/Logging/IDEProvisioningLedger.m:172

Details:  Unable to close provisioning ledger entry because not all of its subentries are closed
Object:   <IDEProvisioningLedgerEntry: 0x7ff7568b7a00>
Method:   -closeWithError:
Thread:   <NSThread: 0x7ff750b16af0>{number = 14, name = (null)}
Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide.
error: exportArchive: Create certificate

Error Domain=IDEProvisioningErrorDomain Code=19 "Create certificate" UserInfo={IDEDistributionIssueSeverity=3, IDEProvisioningError_UserInfoKey_IDEProvisioningUserAction=<IDEProvisioningCreateTeamOwnedCertificateUserAction: 0x7ff756acf0c0>, NSLocalizedRecoverySuggestion=Create a new Apple Distribution certificate for your team., NSLocalizedDescription=Create certificate}

error: exportArchive: No profiles for 'my.bundle.id' were found

Error Domain=IDEProfileLocatorErrorDomain Code=1 "No profiles for 'my.bundle.id' were found" UserInfo={IDEDistributionIssueSeverity=3, NSLocalizedDescription=No profiles for 'my.bundle.id' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS App Store provisioning profiles matching 'my.bundle.id'.}

这是我的release.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>app-store</string>
    <key>teamID</key>
    <string>MY-TEAM-ID</string>
    <key>compileBitcode</key>
    <false/>
</dict>
</plist>

我能够在Xcode中成功构建。我发布的只是命令行导出。

捆绑包ID存在于我的developer.apple.com帐户上。我在Xcode偏好设置中具有有效的iOS开发和iOS发行证书。

我不确定为什么会出现这些错误。

Answers:


15

嘿,我也有这个问题。为了解决这个问题,我要做的是创建存档文件,并使用GUI从xCode导出TestFlight的IPA文件。在此过程中,xCode能够创建丢失的证书。现在,我可以成功运行命令行xCode命令了。

使用GUI创建所需证书的步骤:

  • 开启Xcode
  • 选择产品
  • 选择存档(如果存档为灰色,请首先为通用iOS设备进行构建。)
  • 选择分发应用
  • 从单选按钮列表中选择“ App Store连接”,然后单击“下一步”。
  • 选择从单选按钮列表导出,然后单击下一步。
  • 选中生成苹果分发证书。
  • 导出证书作为备份,并与其他开发人员共享。

下面是需要在GUI进程中单击的“生成Apple分发证书”窗口的屏幕快照。

在此处输入图片说明


1
谢谢,解决了这个问题。它要求我为我们建立的每个公司都这样做。我刚刚像您提到的那样在GUI中检查了“生成证书”,并且命令行工具现在可以使用。看起来像苹果中的错误,因为当我添加-allowProvisioningUpdates标志时,它不会自动更新配置文件,证书等。–
Daryl

我在将本机应用程序上载到TestFilght时遇到此问题。但是我已经安装了.p12,那么为什么我看到此屏幕?有人可以帮忙吗?
阿克沙耶贾达夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.