为什么会这样?
通常情况下,当xCode无法创建有效的分发存档时,它就会在组织器中以“通用Xcode存档”形式出现在“其他项目”中。
这是个问题吗?
是的,因为您将无法将其提交到Apple Store Connect。您不能打包通用存档也不能将其提交审核。
如果我可以更改此设置,怎么做?
首先,我们需要检查项目设置:
- 在
目标 > 管理方案...
中检查您当前的目标是否是具有选定 Shared
标志的有效项目
![enter image description here](https://istack.dev59.com/ebZDD.webp)
在
目标 > 编辑方案...
中检查目标是否是唯一启用存档的目标。还要检查分析和存档选项卡中是否选择了“Release”构建配置。
![enter image description here](https://istack.dev59.com/uuqmV.webp)
在“产品 > 分析”(Shift + command + B)中,检查是否没有错误。您可以在导航面板上的最后一个图标中访问报告:
![enter image description here](https://istack.dev59.com/JiY3E.webp)
我检查了
此链接上的所有2票答案,它们大多涵盖了所有可能的解决方案,但我想再次核对
苹果支持页面的故障排除:
1)您的档案包含头文件。
如果您正在使用静态库,请检查是否有Headers构建阶段。 如果是这样,请删除此阶段,向您的库添加
Copy Files build phase
,并使用它来导出您的头文件。
![enter image description here](https://istack.dev59.com/9E2bi.webp)
2) 您的存档包含静态库或框架。
在这种情况下,这些库和框架需要将标志skip install
设置为YES
![enter image description here](https://istack.dev59.com/qGeSH.webp)
然后再尝试重新归档。
如果以上解决方案都不起作用,可以尝试一个解决方法,即手动修改归档.plist
文件并添加缺失的信息。可以按照以下步骤进行操作:
- 归档您的项目
- 组织器将显示一个通用的Xcode归档
- 右键单击,显示在查找器中
- 右键单击,显示包内容
- 在XML编辑器中打开Info.plist文件
您的有效.plist
文件应如下所示:
只需将PASTE_YOUR_BUNDLE_IDENTIFIER_HERE
替换为您的包标识符,将PASTE_YOUR_CERTIFICATE_NAME_HERE
替换为您的证书名称,将PASTE_YOUR_CERTIFICATE_ID_HERE
替换为您的证书ID,将PASTE_YOUR_TEAM_ID_HERE
替换为您的团队ID。
<?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>ApplicationProperties</key>
<dict>
<key>ApplicationPath</key>
<string>Applications/FinalAppPrj.app</string>
<key>CFBundleIdentifier</key>
<string>PASTE_YOUR_BUNDLE_IDENTIFIER_HERE</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>SigningIdentity</key>
<string>iPhone Distribution: PASTE_YOUR_CERTIFICATE_NAME_HERE (PASTE_YOUR_CERTIFICATE_ID_HERE)</string>
<key>Team</key>
<string>PASTE_YOUR_TEAM_ID_HERE</string>
</dict>
<key>ArchiveVersion</key>
<integer>2</integer>
<key>CreationDate</key>
<date>2019-09-01T20:47:53Z</date>
<key>Name</key>
<string>FinalAppPrj</string>
<key>SchemeName</key>
<string>FinalAppPrj</string>
</dict>
</plist>
要检查证书名称和ID,最简单的方法是打开
Keychain Access.app
(Mac
Finder > Applications > Utilities > Keychain Access.app
),找到该证书(您可以通过文本“Distribution”进行过滤)并查看其详细信息。绿色标记为名称,括号内的红色标记为ID。
![enter image description here](https://istack.dev59.com/VZYXD.webp)
请关闭并重新打开xCode。在
窗口 > 组织器
中,如果归档位于iOS应用程序下,则可以验证和分发该应用程序。
编辑
要添加iOS发布证书,请在xCode中单击
xCode > 首选项 > 帐户 >
选择团队,然后单击
管理证书...
。在
加号按钮
上,您应该看到iOS Distribution:
![enter image description here](https://istack.dev59.com/rd4Gd.webp)
将此证书添加到项目中,在钥匙串中检查是否已添加,并将其指向.plist文件。
由于您正在使用签名团队,还需要将该团队添加到.plist中。我已经更新了所需条目的.plist文件。