Xcode停留在嵌入配置文件中

Rom*_*mov 12 xcode provisioning-profile

今天我将我的Xcode更新到版本9.3(9E145).之后我创建了一个存档,现在我正在尝试将其导出以进行开发.但是我看到Xcode陷入了以下步骤:

XCode消息

这是Xcode 9.3的错误吗?我该如何解决?

all*_*enh 29

Xcode似乎在显示此消息时重新编译bitcode,因此可能需要很长时间才能"嵌入配置文件".如果耐心等待很长时间,取决于代码库的大小(包括来自Carthage或Cocoapods的依赖关系),它最终会继续.

@ AllanWeir的答案明确禁用了bitcode编译,建议在plist文件中这样做,所以时间的改善似乎是一个无意的副作用."修复"这不需要使用命令行导出.

我认为之前的Xcode版本在bitcode重新编译期间提供了更多有用的状态.

您可以通过UI在Xcode导出期间禁用bitcode编译,它将不再"卡住".

在此输入图像描述


All*_*eir 2

我在 Xcode 9.3 上也发生了这个问题,看起来从终端使用 xcodebuild 可以按预期工作。

您可以通过运行导出存档(替换存档路径)

xcodebuild -exportArchive -archivePath "YOUR_XCODE_ARCHIVE_FOLDER/YOUR_ARCHIVE.xcarchive" -exportPath "output/"  -exportOptionsPlist "ExportOptions.plist"
Run Code Online (Sandbox Code Playgroud)

您需要设置一个 ExportOptions.plist 文件,其中至少包含以下内容:

  • “方法”设置为“应用程序商店”、“企业”、“临时”或“开发”
  • “compileBitcode”设置为 FALSE
  • 对于手动签名,您需要添加您的团队和配置详细信息

有关导出选项的更多信息可在此处使用 XCODEBUILD 将 .XCARCHIVE 导出到 .IPA...

我的 ExportOptions.plist 如下所示(替换捆绑包 ID、配置文件、团队 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>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>
Run Code Online (Sandbox Code Playgroud)