我有一个部署目标为 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)
根据苹果关于框架弱链接的文章(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 项目中的弱引用?