Mac Catalyst问题-链接为iOS Simulator构建的目标文件

问题描述 投票:3回答:1

我正在尝试使用新的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

这种情况发生在多个吊舱中,因此,例如,如果我删除Crashlytics,则对于另一个吊舱也会收到类似的错误。有人知道这是Crashlytics需要解决的问题还是我可以在我的项目中解决的问题?

ios swift maccatalyst
1个回答
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”。示例:

xcode

然后在您的快速代码中添加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)。

希望所有这些都能为您提供帮助。

© www.soinside.com 2019 - 2024. All rights reserved.