【问题标题】:Bringing iOS Frameworks through Carthage in Xcode 12.0在 Xcode 12.0 中通过 Carthage 引入 iOS 框架
【发布时间】:2020-09-17 22:31:24
【问题描述】:

我正在使用 Xcode 12.0 和 Carthage 0.35.0,当我在我开发的框架上执行 Carthage bootstrap --platform iOSCarthage update --platform iOS --no-use-binaries 时,出现此错误。我在 Xcode 11.7 中没有这个问题。


*** Building scheme "MyFrameworkKit" in MyFrameworkKit.xcodeproj
Build Failed
    Task failed with exit code 1:
    /usr/bin/xcrun lipo -create /Users/myname/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A7209/MyFrameworkKit/579b0a4ac155ab413da1d73609bf5f24e5ed7cc8/Build/Intermediates.noindex/ArchiveIntermediates/MyFrameworkKit/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/MyFrameworkKit.framework/MyFrameworkKit /Users/myname/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A7209/MyFrameworkKit/579b0a4ac155ab413da1d73609bf5f24e5ed7cc8/Build/Products/Release-iphonesimulator/MyFrameworkKit.framework/MyFrameworkKit -output /Users/myname/Developer/myapp/ios/Carthage/Build/iOS/MyFrameworkKit.framework/MyFrameworkKit

This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/11/tjwvq_yx4mj042kv46mxz1wh0000gn/T/carthage-xcodebuild.gaIzr4.log

当我查看上面提到的日志文件时。我看到构建是成功的。但是当我打开 Xcode 并尝试构建应用程序时,我看到了以下消息:/Users/myname/Developer/myapp/ios/myapp.xcodeproj Building for iOS Simulator, but the linked framework 'MyFrameworkKit.framework' was built for iOS.

从 Xcode 11.7 到 Xcode 12.0,我可以将什么类型的框架构建带入我的应用程序中一定发生了一些变化。你知道我错过了什么吗?

更新:

我一直在成功使用下面接受的答案中建议的解决方法。似乎有一个新的 Carthage 版本,但我必须尝试。但它确实说它解决了这个问题: https://github.com/Carthage/Carthage/releases/tag/0.36.1

【问题讨论】:

标签: swift xcode carthage xcode12


【解决方案1】:

答案很简单:Carthage 0.35.0 与 Xcode 12 不兼容。他们正在努力修复。在那之前,there is a workaround

【讨论】:

  • 谢谢!具体来说,this comment 在那个为我解决问题的讨论中。
【解决方案2】:

现在 Carthage 0.37 终于能够构建 XCFrameworks ? 这使得它与 Xcode 12 兼容并且可以删除 workaround。只需执行以下步骤:

# Delete carthage cache
rm -rf ~/Library/Caches/org.carthage.CarthageKit
# Delete carthage build folder
rm -rf Carthage/Build
# Delete DerivedData folder
rm -rf ~/Library/Developer/Xcode/DerivedData
# Build all dependencies as XCFrameworks
carthage bootstrap --use-ssh --use-xcframeworks --cache-builds

有关详细信息以及从框架到 XCFrameworks 的迁移指南,请参阅 Github release 0.37.0。该指南告诉您如何集成 xcframeworks 以及您必须从项目中删除的内容。

【讨论】:

    【解决方案3】:

    我在这里使用了这个建议:https://newreleases.io/project/github/Carthage/Carthage/release/0.37.0

    基本上:要将 XCFrameworks 构建到您的应用程序中,请使用 --use-xcframeworks 运行 Carthage 并将生成的 XCFrameworks 拖到 Xcode 目标的 Embedded binaries 部分...

    这是我使用的命令: carthage bootstrap --platform iOS --use-xcframeworks

    【讨论】:

      【解决方案4】:

      检查是否“。”包含在框架搜索路径中。有的话删掉。

      【讨论】:

        【解决方案5】:

        迦太基 0.36.1 仍然有这个错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-07-05
          • 1970-01-01
          • 1970-01-01
          • 2015-09-10
          • 1970-01-01
          • 2017-11-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多