ios - 使用 Catalyst 移植到 Mac 时排除 pod

标签 ios swift ipad cocoapods mac-catalyst

借助 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/

相关文章:

iphone - 是否有在 iOS 上使用自定义实时 EQ 播放音乐的框架?

iphone - 闹钟iOS

ios - 如何让cocos2d v1.0.1支持Retina?

iphone - 通用应用程序上 .XIB 中的 UIView 始终报告 iPhone UI 大小

ios - 如何在 swift 3 中通过 SearchBar 按电子邮件地址搜索联系人?

ios - 将模态视图放在 View 上并使背景变灰

ios - dequeueReusableCellWithIdentifier 在 iPad 上崩溃(使用 iOS 5)

ios - 我可以在 IOS 8.1 中的 xib 文件中使用大小类吗?

ios - 如何快速修复此 try/guard 错误

swift - 如何通过发送者以外的标签调用特定的UIButton?