SPM 动态库的代码签名问题

问题描述 投票:0回答:1

我有一个框架 (

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
应该可以解决问题,但事实并非如此。谢谢。

xcode code-signing swift-package-manager dylib
1个回答
0
投票

您无法分发嵌套框架。请参阅相关的 Apple 开发人员文档 关于此问题

最顶层应用程序级别的iOS和tvOS支持框架和Swift系统库;嵌套捆绑包(如应用程序扩展)不能包含框架。

您需要以不同的方式实现您的目标,而不需要嵌套框架。

© www.soinside.com 2019 - 2024. All rights reserved.