借助 Catalyst,将应用程序移植到 Mac 终于成为可能,问题是,许多 pod 不支持 AppKit。 最常见的是 Crashlytics/Firebase。
In [...]/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics(CLSInternalReport.o), building for Mac Catalyst, but linking in object file built for iOS Simulator, file '[...]/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics' for architecture x86_64
由于这是最近的主题,我无法找到有关如何从 macOS 版本中删除 pod 并保留 iOS 和 iPadOS 的文档。
可以在代码中使用:
#if !targetEnvironment(macCatalyst)
// Code to exclude for your macOS app
#endif
但是问题的一部分,另一部分是仅链接适用于 iOS 的 pod...
当该库对于 macOS 并不重要但在 iOS 上仍然需要时,最简单/最好的行动方案是什么?
最佳答案
对于处理 Catalyst 不支持的框架的最佳方法,你们应该阅读 Fernando Moya de Rivas 的解决方案,他有一个 github,里面有一个解决方案 here提供更多最新信息。
他基本上说你只需要定义一个数组,其中包含你不想在 mac osx 上安装的所有库,如下所示:['Fabric', 'Crashlytics', 'Firebase/Core', ...]
。
然后,你的 pod 文件可以看起来很简单:
# Podfile
load 'remove_unsupported_libraries.rb'
target 'My target' do
use_frameworks!
# Install your pods
pod ...
end
# define unsupported pods
def catalyst_unsupported_pods
['Fabric', 'Crashlytics', 'Firebase/Core', ...]
end
# Remove unsupported pods from your project
post_install do |installer|
installer.configure_support_catalyst
end
关于ios - 使用 Catalyst 移植到 Mac 时排除 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58635911/