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" 在选项中未选中,它会快速导出(对我来说只需一两分钟)。