xcodebuild -exportArchive失败并显示错误找到签名资产失败

Vla*_*rov 14 xcodebuild ios ipa xcode9-beta xcode9

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

IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7fc309310550>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed."
Run Code Online (Sandbox Code Playgroud)

看来Xcode 9找不到配置文件,但为什么呢?

Ant*_*kov 12

在我的情况下,问题由-exportOptionsPlistplist中的下一个字段解决:

<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>
Run Code Online (Sandbox Code Playgroud)

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

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

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


Vla*_*rov 11

我正在运行此命令:

xcodebuild -exportArchive -archivePath archive.xcarchive -exportPath /my/export/path -exportOptionsPlist options.plist
Run Code Online (Sandbox Code Playgroud)

我的项目使用手动签名.事实证明,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>
Run Code Online (Sandbox Code Playgroud)

并且"查找签名资产失败"错误消失了.但是还有另一个错误:

<key>compileBitcode</key>
<false/>
Run Code Online (Sandbox Code Playgroud)

Xcode 9默认从bitcode重新编译应用程序.我通过在options.plist中添加另一个条目来关闭bitcode来解决这个错误:

xcodebuild -exportArchive -archivePath archive.xcarchive -exportPath /my/export/path -exportOptionsPlist options.plist
Run Code Online (Sandbox Code Playgroud)

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