Xcode 11 卡在存档上

Posted

技术标签:

【中文标题】Xcode 11 卡在存档上【英文标题】:Xcode 11 stuck on archiving 【发布时间】:2019-09-18 22:21:19 【问题描述】:

我正在使用 Xcode 11 GM 2 来归档我的应用程序。它使用 CocoaPods 和 Swift。 尝试存档我的应​​用程序时,它无限卡在这里: 删除 Firebase 或其他框架后,仍然会发生这种情况。有关如何解决此问题的任何想法?

【问题讨论】:

它是使用最新的 Xcode 10 还是 Xcode 11 特有的问题? @balazs630 我无法测试,因为该应用程序是使用 ios 13 特定功能构建的,因此在 Xcode 10 中构建失败 @SergStav 我在 macOS Mojave 上,但我没有将该项目存档。我创建了一个没有 CocoaPods 的新项目,复制了源代码,改用 Carthage,切换到旧版构建系统(文件 > 项目设置),然后将其卡在“为 1 个文件中的 1 个文件设置模式”,删除派生数据,做了一个干净的(Command + K(+Shift)),它确实存档了。 (我也遇到了 RMessage 的问题,其中嵌套了一个“Frameworks”文件夹,其中包含另一个框架,该文件夹需要删除,还要检查框架中的大型字典,尝试删除或拆分它们) 我在 XCode 12.1 上也遇到了同样的问题,有人设法解决了这个问题吗? 【参考方案1】:

这可能会有所帮助(我遇到了 SwiftSoup 的问题,另一个 CocoaPod)。在尝试让 Xcode 11 归档我的应用程序时(即使在命令行中),我遇到了莫名其妙的挂起。这并不意味着永久修复,而是临时解决方法(换句话说,我们不应该这样做来构建有问题的库)!

将此添加到Podfile 的底部并重新运行pod install

post_install do |installer|
  installer.pods_project.targets.each do |target|
    next unless target.name == '<NAME OF POD>'
    target.build_configurations.each do |config|
      next unless config.name.start_with?('Release')
      config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] = '-Onone'
    end
  end
end

然后尝试归档您的项目。如果这不起作用……也许可以尝试使用其他编译器优化设置?

【讨论】:

我使用的是 SwiftSoup,该解决方案也适用于我。谢谢! @BenKreeger 感谢您的工作(目标名称已修复!)。它显然适用于某些人,但不适用于我。我还直接关闭了项目设置中的 Swift Optimization 标志。我正在使用 Xcode 11 版本和 SwiftSoup 2.2.1,并且在“触摸”之后立即链接 SwiftSoup 时存档进程仍然挂起。有什么想法吗?? 我也有 SwiftSoup。这个解决方案也对我有用。 如果您需要将构建上传到 Fabric Crashlytics,请将 config.nameRelease 替换为 Alpha。那是我的情况! 卡住了我自己的项目。我怎样才能找到问题?【参考方案2】:

同时我找到了一个干净快速的解决方案,在项目导航器中点击“Pods”,然后在targets(图片)中设置SwiftSoup,

在 Swift 编译器中同时设置 -Onone。现在尝试存档。

【讨论】:

我使用的是 SwiftSoup,这解决了我的问题。 Xcode 列出了其他 pod,例如 Alamofire 或一些 Firebase pod,但在删除 SwiftSoup 优化后,我管理存档

以上是关于Xcode 11 卡在存档上的主要内容,如果未能解决你的问题,请参考以下文章

将存档上传到 App Store 时,Xcode 卡在“将媒体复制到包中”

Xcode 11 成功的存档不会显示在管理器中,

Xcode 11 存档给出 PhaseScriptExecution 失败

使用 Xcode 的命令行构建工具存档(xcodebuild 存档)

“产品包含无效产品” Nativescript Xcode 存档

导出存档时 Xcode 5 崩溃