我有一个框架 (
MyFramework
),我想在其中通过 SPM 使用现有的动态框架(现在称为 MyDynamicFramework
)。
然后,我创建了一个测试应用程序,其中只需将我的框架包含在
Enbed & Sign
中。
当我运行此测试应用程序时,它在模拟器中一切正常,但在真实设备中我遇到以下与签名相关的问题:
dyld[24248]: Library not loaded: @rpath/MyDynamicFramework.framework/MyDynamicFramework
Referenced from: <ED356026-4AD8-3AD4-9CD7-BE977EE551E4> /private/var/containers/Bundle/Application/432B2A6D-55A7-4C9D-8EA2-622B81E215EA/MyFrameworkTestApp.app/Frameworks/MyFramework.framework/MyFramework
Reason: tried: '/private/var/containers/Bundle/Application/432B2A6D-55A7-4C9D-8EA2-622B81E215EA/MyFrameworkTestApp.app/Frameworks/MyDynamicFramework.framework/MyDynamicFramework' (no such file),
'/private/var/containers/Bundle/Application/432B2A6D-55A7-4C9D-8EA2-622B81E215EA/MyFrameworkTestApp.app/Frameworks/MyFramework.framework/Frameworks/MyDynamicFramework.framework/MyDynamicFramework' (code signature in <2BD920A5-1906-31B6-99B9-18DE47F02514>
'/private/var/containers/Bundle/Application/432B2A6D-55A7-4C9D-8EA2-622B81E215EA/MyFrameworkTestApp.app/Frameworks/MyFramework.framework/Frameworks/MyDynamicFramework.framework/MyDynamicFramework' not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.),
'/Users/XXXXXXX/Library/Developer/Xcode/DerivedData/MyFramework-gedzmltwlpgatndvsrwkinsfgwhr/Build/Products/Debug-iphoneos/PackageFrameworks/MyDynamicFramework.framework/MyDynamicFramework' (no such file),
...
我是否缺少一些设置?我认为
Embed & Sign
应该可以解决问题,但事实并非如此。谢谢。
您无法分发嵌套框架。请参阅相关的 Apple 开发人员文档 关于此问题
最顶层应用程序级别的iOS和tvOS支持框架和Swift系统库;嵌套捆绑包(如应用程序扩展)不能包含框架。
您需要以不同的方式实现您的目标,而不需要嵌套框架。