签名嵌入式框架在Xcode 11.2.1中不起作用


18

我有一个小型的概念验证应用程序,我试图在其中将一个框架(Alamofire)嵌入(并签名)到我的框架(AequumPOCFramework.framework)中,但是,当我尝试将其部署到设备上时,它会不断我的错误

....不适用于使用库验证的过程:映射文件没有cdhash,完全未签名?代码必须至少是临时签名的。

如果我只是尝试部署自己的框架而没有嵌入Alamofire,则一切正常。

部署到我的iPhone时的完整错误是:

dyld:未加载库:@ rpath / Alamofire.framework / Alamofire引用自:/private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/AequumPOCFramework原因:找不到合适的图像。确实找到了:/private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire:代码签名在(/ private / var /containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire)在使用库验证的过程中无效:映射的文件没有cdhash ,完全未签名?代码必须至少是临时签名的。

我究竟做错了什么?

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明


2
这里有同样的问题。目前正在研究这个问题。如果您已经找到解决方案,请与我保持联系!
Mattk90 '19

2
很高兴看到我不是唯一的一个。...如果我发现了,我会让你知道。另外,如果您取得任何进展,请告诉我。
geekyaleks

我已经可以告诉您,它与框架的签名过程有关。因此,问题在于Xcode表示嵌入式框架的签名错误或与您自己的框架签名不同。我目前正在深入研究。查看此文章,以获取有关该主题的精彩介绍:medium.com/@tally_b/more-unfolding-on-ios-signings-b6886236d7fc
Mattk90 '19

2
是的,此签名过程出了点问题...目前,我将Alamofire框架包括在自己的框架中,对其进行签名和嵌入,然后将其签名并嵌入到App本身中。我知道这种情况很糟,但是这至少可以让我继续编码,并希望真正的解决方案能在不久的将来出现。
geekyaleks

1
谢谢您提供非常全面的答案...我已经决定,现在,我将在应用程序本身中签名“嵌入式/嵌入式”框架,希望不久的将来还会出现另一个答案...
geekyaleks

Answers:


15

iOS不支持嵌套框架(请参阅技术说明)。目前唯一合法的解决方案是将“嵌入式”框架直接链接到托管应用程序。

* XCFramework主要是特定于平台的二进制文件的集合,不幸的是与嵌入框架无关。


关于这个问题有什么消息吗?我面临着同样的问题:我的框架A正在使用我的框架B,并且我需要最终的应用程序仅包含框架A而不能访问框架B
Silvia

@Silvia如果您绝对需要隐藏B,那么我相信您可以将其转换为Static Library。
berec

0

您也必须将Alamofire嵌入到您的项目中。

例如,您正在使用Carthage,并且框架的Cartfile具有Alamofire库。您也必须为主应用程序使用相同的Carfile。另外,您还必须为主应用程序执行其他迦太基动作(链接库,添加运行脚本)。


是的,我也发现,但是,将所有框架都提供给最终开发人员并不是我的目标。我希望将所有内容很好地捆绑在一个框架(我的框架)中。谢谢..
geekyaleks
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.