MacCatalyst 仍不支持 Flurry Analytics。在我的应用程序中,Flurry 是该目标环境中唯一不支持的 CocoaPod。 Fernando Moya de Rivas 在 Medium 上发表了一篇关于这个问题的条件链接的好文章 ( https://medium.com/better-programming/macos-catalyst-debugging-problems-using-catalyst-and-cocoapods-579679150fa9 )。 Pod 是一个静态的预编译库。 Moya de Rivas 建议编辑 xcconfig 文件以有条件地链接文件(如果它们仅来自 iOS):
OTHER_LDFLAGS = $(inherited) -framework "Crashlytics" -framework "Fabric" -framework "FrameworkThatSupportsCatalyst"
至:
OTHER_LDFLAGS = $(inherited) -framework "FrameworkThatSupportsCatalyst"
OTHER_LDFLAGS[iphone*] = $(inherited) -framework "Crashlytics" -framework "Fabric"
因此,在我的 xcconfig 中,我从加载列表中删除了 Flurry_iOS_SDK 并将其放入仅 iOS 列表中:
OTHER_LDFLAGS = $(inherited) -ObjC -framework "Accelerate" -framework "CFNetwork" -framework "CalmParametricAnimations" -framework "CampcotCollectionView" -framework "CoreGraphics" -framework "Foundation" -framework "KenBurns" -framework "Kingfisher" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit"
OTHER_LDFLAGS[iphone*] = $(inherited) -framework "Flurry_iOS_SDK"
问题是 Xcode 似乎不喜欢条件链接语句:
xxxxxxx.debug.xcconfig Ignoring build settings configuration file Pods-HieroglyphicsPro.debug.xcconfig due to an error: String 'OTHER_LDFLAGS[iphone*] = $(inherited) -framework "Flurry_iOS_SDK"' could not be parsed: macro string representation 'OTHER_LDFLAGS[iphone*]' isn't well formed: parameter name is empty.
Moya de Rivas 的方法被广泛引用为一个很好的解决方案,但我使用的是更高版本的 Xcode(12.2 版本 12B45b)。是否不再支持此语法,或者我是否存在未发现的语法错误?我无法找到 Xcode 链接器工具链命令的引用。
最佳答案
OTHER_LDFLAGS[iphone*] = $(inherited) -framework "Flurry_iOS_SDK"
效果更好
OTHER_LDFLAGS[sdk=iphone*] = $(inherited) -framework "Flurry_iOS_SDK"
关于ios - MacCatalyst 的条件 Pod 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65146039/