15

我正在使用命令行 xcodebuild 工具从 Xcode 档案中导出 .ipa 文件。在 Xcode 8.3.3 之前它运行良好。相同的设置已停止使用 Xcode 9 beta。现在它失败并出现此错误:

IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7fc309310550>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed."

似乎 Xcode 9 无法找到配置文件,但为什么呢?

4

2 回答 2

12

-exportOptionsPlist在我的情况下, plist中的下一个字段解决了这个问题:

<dict>
  <key>compileBitcode</key>
  <false/>

  <key>method</key>
  <string>ad-hoc</string>

  <key>provisioningProfiles</key>
  <dict>
      <key>com.my.bundle.id</key>
      <string>AD_HOC_PROVISIONING_PROFILE_NAME</string>
  </dict>

  <key>signingCertificate</key>
  <string>CERTIFICATE_HASH</string>

  <key>signingStyle</key>
  <string>manual</string>

  <key>teamID</key>
  <string>TEAM_ID</string> 
</dict>

所以,显然我必须设置:compileBitcode, method, provisioningProfiles, signingCertificate,signingStyleteamID.

在您的情况下,字段集可以不同。我.ipa通过 Xcode 9 存档和导出找到了我的设置。Xcode 将exportOptionsPlist使用 ipa 导出它并显示它使用的字段。

有关字段发现的更多信息:https ://blog.bitrise.io/new-export-options-plist-in-xcode-9

于 2017-09-28T07:14:21.323 回答
11

我正在运行这个命令:

xcodebuild -exportArchive -archivePath archive.xcarchive -exportPath /my/export/path -exportOptionsPlist options.plist

我的项目使用手动签名。事实证明,Xcode 9 需要 options.plist 中指定的配置文件名称或 UUID 才能对导出的 .ipa 文件进行签名。我将此条目添加到我的 options.plist 中:

<key>provisioningProfiles</key>
<dict>
    <key>com.myapp.bundle.id</key>
    <string>My AdHoc Provisioning Profile Name</string>
</dict>

并且“定位签名资产失败”错误消失了。然而还有另一个错误:

IDEDistribution: Step failed: : Error Domain=IDEFoundationErrorDomain Code=1 "ipatool failed with an exception: #

Xcode 9 默认从位码重新编译应用程序。我通过在我的 options.plist 中添加另一个条目来关闭位码,从而克服了这个错误:

<key>compileBitcode</key>
<false/>

现在我终于能够使用 Xcode 9 构建我的应用程序并使用 xcodebuild 导出 ipa 文件而不会出错。

于 2017-07-19T08:14:45.930 回答