Xcode 卡在嵌入配置文件上
Xcode stuck on embedding provisioning profile
今天我将 Xcode 更新到版本 9.3 (9E145)。之后我创建了一个存档,现在我正在尝试将其导出以进行开发。但是我看到 Xcode 卡在了以下步骤:
它是 Xcode 9.3 的错误吗?我该如何解决?
我在 Xcode 9.3 上也遇到了这个问题,看起来从终端使用 xcodebuild 可以正常工作。
您可以通过运行(替换存档路径)导出存档
xcodebuild -exportArchive -archivePath "YOUR_XCODE_ARCHIVE_FOLDER/YOUR_ARCHIVE.xcarchive" -exportPath "output/" -exportOptionsPlist "ExportOptions.plist"
您需要设置一个 ExportOptions.plist 文件,其中至少包含:
- 'method' 设置为 'app-store'、'enterprise'、'ad-hoc' 或 'development'
- 'compileBitcode' 设为 FALSE
- 对于手动签名,您需要添加您的团队和配置详细信息
此处提供了有关导出选项的更多信息EXPORT .XCARCHIVE TO .IPA USING XCODEBUILD...
我的 ExportOptions.plist 看起来像(替换包 ID、配置文件、团队 ID 和可能的 signingCertificate 值):
<?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>compileBitcode</key>
<false/>
<key>method</key>
<string>enterprise</string>
<key>provisioningProfiles</key>
<dict>
<key>COM.YOUR-BUNDLE-ID</key>
<string>YOUR PROVISIONING PROFILE NAME</string>
</dict>
<key>signingCertificate</key>
<string>iPhone Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>teamID</key>
<string>YOUR TEAM ID</string>
</dict>
</plist>
Xcode 似乎在显示此消息时正在重新编译位代码,因此可能需要很长时间才能 "embed the provisioning profile"。如果您耐心等待很长时间,这取决于您的代码库的大小(包括来自 Carthage 或 Cocoapods 的依赖项),它最终会继续。
@AllanWeir 的回答通过建议在 plist 文件中这样做明确禁用了 bitcode 编译,因此时间改进似乎是无意的副作用。 "Fixing" 这不需要使用命令行导出。
我认为以前的 Xcode 版本在位码重新编译期间提供了更多有用的状态。
您可以在 Xcode 导出期间通过 UI 禁用位码编译,它将不再得到 "stuck"。
Xcode 版本 9.3.1 (9E501)
至于我,我需要等待一段时间(大约 3-5 分钟)才能最终重新编译 bitcode。看来你得等一段时间才能完成。
我在 xcode 9.4
。我的代码库也相当大。
我的导出大约需要 20 分钟。
但就像@Allen Humphreys 提到的那样,如果 "Rebuild from Bitcode" 在选项中未选中,它会快速导出(对我来说只需一两分钟)。
今天我将 Xcode 更新到版本 9.3 (9E145)。之后我创建了一个存档,现在我正在尝试将其导出以进行开发。但是我看到 Xcode 卡在了以下步骤:
它是 Xcode 9.3 的错误吗?我该如何解决?
我在 Xcode 9.3 上也遇到了这个问题,看起来从终端使用 xcodebuild 可以正常工作。
您可以通过运行(替换存档路径)导出存档
xcodebuild -exportArchive -archivePath "YOUR_XCODE_ARCHIVE_FOLDER/YOUR_ARCHIVE.xcarchive" -exportPath "output/" -exportOptionsPlist "ExportOptions.plist"
您需要设置一个 ExportOptions.plist 文件,其中至少包含:
- 'method' 设置为 'app-store'、'enterprise'、'ad-hoc' 或 'development'
- 'compileBitcode' 设为 FALSE
- 对于手动签名,您需要添加您的团队和配置详细信息
此处提供了有关导出选项的更多信息EXPORT .XCARCHIVE TO .IPA USING XCODEBUILD...
我的 ExportOptions.plist 看起来像(替换包 ID、配置文件、团队 ID 和可能的 signingCertificate 值):
<?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>compileBitcode</key>
<false/>
<key>method</key>
<string>enterprise</string>
<key>provisioningProfiles</key>
<dict>
<key>COM.YOUR-BUNDLE-ID</key>
<string>YOUR PROVISIONING PROFILE NAME</string>
</dict>
<key>signingCertificate</key>
<string>iPhone Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>teamID</key>
<string>YOUR TEAM ID</string>
</dict>
</plist>
Xcode 似乎在显示此消息时正在重新编译位代码,因此可能需要很长时间才能 "embed the provisioning profile"。如果您耐心等待很长时间,这取决于您的代码库的大小(包括来自 Carthage 或 Cocoapods 的依赖项),它最终会继续。
@AllanWeir 的回答通过建议在 plist 文件中这样做明确禁用了 bitcode 编译,因此时间改进似乎是无意的副作用。 "Fixing" 这不需要使用命令行导出。
我认为以前的 Xcode 版本在位码重新编译期间提供了更多有用的状态。
您可以在 Xcode 导出期间通过 UI 禁用位码编译,它将不再得到 "stuck"。
Xcode 版本 9.3.1 (9E501)
至于我,我需要等待一段时间(大约 3-5 分钟)才能最终重新编译 bitcode。看来你得等一段时间才能完成。
我在 xcode 9.4
。我的代码库也相当大。
我的导出大约需要 20 分钟。 但就像@Allen Humphreys 提到的那样,如果 "Rebuild from Bitcode" 在选项中未选中,它会快速导出(对我来说只需一两分钟)。