无法使用 Xcode 9 创建 xcarchive 到 ipa

Posted

技术标签:

【中文标题】无法使用 Xcode 9 创建 xcarchive 到 ipa【英文标题】:Can't create xcarchive to ipa with Xcode 9 【发布时间】:2018-07-30 11:56:39 【问题描述】:

我正在尝试将我的 xcarchive 转换为 ipa。我尝试使用此建议但没有成功:How to convert .xcarchive to .ipa for client to submit app to app store using Application Loader

我是 Mac 和 Apple 配置文件和证书的绝对初学者。

我只知道:

我有 ios 分发证书 我有生产供应配置文件

我刚刚在 Cloud 中租用了一台 Mac,将其转换为 IPA 并上传到应用商店。

我正在使用这种类型的命令:

    xcodebuild 
  -exportArchive 
  -exportOptionsPlist PATH_TO_PROJECT_ROOT/ios/build/info.plist 
  -archivePath PATH_TO_ARCHIVE_MADE_USING_XCODE/MyApp.xcarchive 
  -exportPath PATH_TO_EXPORT_THE_APP/MyApp.ipa

使用此 info.plist 代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
      <key>provisioningProfiles</key>
      <dict>
        <key>UUID</key>
        <string>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</string>
      </dict>
      <key>signingCertificate</key>
      <string>iPhone Distribution</string>
      <key>signingStyle</key>
      <string>manual</string>
      <key>teamID</key>
      <string>XXXXXXXX</string>
  </dict>
</plist>

我收到一个错误:没有匹配的证书 "iPhone Distribution: ..." for teamID: ....

我做错了什么?

我必须输入的确切值是多少?

<key>signingCertificate</key>
  <string>iPhone Distribution</string>

另外,我应该在 Mac 上安装任何证书或类似的东西吗?我以前从未使用过 Mac 或 Xcode;我只是按照使用命令行代码生成 ipa 的提示进行操作。

【问题讨论】:

【参考方案1】:

证书必须安装在钥匙串中,才能将这台 Mac 标识为可以构建以供分发的 Mac。我不知道您是否可以使用基于虚拟云的“机器”来做到这一点,但无论如何,您的短语“我有 iOS 分发证书”显然是错误的,因为您需要“拥有” 要分发的证书是“将其安装在钥匙串中”。如果您查看 Xcode Accounts 首选项窗格的 Manage Certificates 对话框,它会清楚地告诉您证书的状态。

【讨论】:

谢谢。我将我的个人资料和证书添加到 xCode。现在,当我尝试上传应用程序时,首先我选择了“自动签名”。然后我收到两个错误:未知错误,长度:[某个数字] 和“应用程序必须在名为 Embedded.mobileprovision 的文件中包含配置文件”。所以我下次选择“手动签名”。现在,当我尝试选择配置文件时,我得到:“配置文件不包括选定的签名证书”。我是否应该以某种方式也安装配置文件或私钥或......?我已经在 Linux 上预先生成了所有这些。 对不起,在我看来这是一个新问题。证书和配置文件的使用非常有据可查;你会在 cmets 中询问它的每个阶段吗?我相信我回答了你实际问的部分。如果您有新问题,请提出新问题。谢谢。 对不起。我会问一个新问题。谢谢。 @NikolayShindarov:我现在阻止你提出这个新问题已经太迟了,但是在未来,如果你能扎扎实实地研究这个新问题,那是一个很好的实践。两个小时的两个问题表明第二个问题没有得到足够的研究,只有自己经历了那个痛苦,你才能成为一个更好的工程师。 @halfer 我认为 OP 没有“成为更好的工程师”的野心。他说“我以前从未使用过 Mac 或 Xcode”。很明显,他只是被交给了将这个东西放到应用商店的一次性任务。

以上是关于无法使用 Xcode 9 创建 xcarchive 到 ipa的主要内容,如果未能解决你的问题,请参考以下文章

我如何知道哪个版本的 Xcode/哪个 SDK 构建了 xcarchive?

ipa 和 xcarchive 的区别?

Xcode不能识别真机调试包,怎么办

在没有 Xcode 的情况下创建存档

从 Xamarin 创建未签名的 .xcarchive

如何将旧版构建系统与 Xcode 10 的“xcodebuild”一起使用?