我有一个部署目标为iOS 9.3的应用程序。 我正在使用AppAuth库(appauth.io),并且在podspec中它具有对Apples AuthenticationServices SDK的引用。此SDK仅可从iOS 12+开始使用。因此,它与.weak_framework参考相关联。
但是,当运行“ pod install”时,AuthenticationServices框架会像其他任何参考一样按要求嵌入-不像我期望的那样弱/可选。
因此,当应用程序在低于iOS 12的设备上运行时,应用程序将崩溃并显示以下消息:
dyld: Library not loaded: /System/Library/Frameworks/AuthenticationServices.framework/AuthenticationServices
Referenced from: /Users/dkesbras/Library/Developer/CoreSimulator/Devices/C7AF7A0D-79A9-48C2-8619-DEF94BBD2D10/data/Containers/Bundle/Application/A2697143-C605-4E69-A1A6-9D28ADE53192/LEGOMovieMaker.app/LEGOMovieMaker
Reason: image not found
Signal: SIGABRT (signal SIGABRT)
根据Apple关于框架弱链接(https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html#//apple_ref/doc/uid/20002378-BBCJICEC)的文章,这也应该在带有标记-weak_framework的“其他链接器标志”中可见。但是这里可以确认该框架没有正确地弱链接。
在低于iOS 12的设备上或在cocoapods中利用.weak_framework的其他SDK上使用AppAuth SDK是否成功?
如何在递归的podspec中使.weak_frameworks有效,以便在cocoapods项目中将引用正确安装为弱引用?