我正在尝试使用新的Mac Catalyst在Mac上构建我的iOS / iPadOS项目。当我在iPhone的模拟器上构建它时,一切都很好,但是在Mac上构建它时,出现此错误。
in /Users/nevin/Documents/[projectName]/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics(CLSInternalReport.o), building for Mac Catalyst, but linking in object file built for iOS Simulator, file '/Users/nevin/Documents/[projectName]/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics' for architecture x86_64
这种情况发生在多个Pod上,因此,例如,如果我删除Crashlytics,则对于另一个Pod也会收到类似的错误。有人知道这是Crashlytics需要修复的东西还是我可以在我的项目中修复的东西?
答案 0 :(得分:0)
Mac Catalyst使用x86_64,但使用Mac Catalyst的目标进行编译。
我有一个针对Mac Catalyst编译的项目,您需要添加以下标志: https://github.com/ezored/conan-darwin-toolchain/blob/stable/1.1.0/conanfile.py#L183-L188
如果您的框架不兼容,请不要在“常规>框架”中链接它,而是选择“ iOS”而不是“ macOS + iOS”。示例:
然后在您的快速代码中添加IF代码,以检查您的框架是否可以导入并与此一起使用:
#if targetEnvironment(macCatalyst)
print("UIKit running on macOS")
#else
print("Your regular code")
#endif
通过此操作,您可以使应用程序与Mac Catalyst兼容。并且当您的框架(例如Crashlytics)兼容时,再次检查“ macOS + iOS”并删除代码检查。
其他选择是使Mac Catalyst成为另一个目标,并只为Mac Catalyst放置东西,但是使用我的第一个选择,您可以毫无问题地进行构建。
如果您想使用C ++代码通过Mac Catalyst支持创建框架,则可以检查我的框架(https://github.com/ezored/ezored)。
希望所有这些都能为您提供帮助。