【问题标题】:Signing embedded framework not working in Xcode 11.2.1签署嵌入式框架在 Xcode 11.2.1 中不起作用
【发布时间】:2020-03-08 10:00:11
【问题描述】:

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

....在使用库验证的过程中无效:映射文件没有 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,完全未签名?代码必须至少是临时签名的。

我做错了什么?

【问题讨论】:

  • 这里有同样的问题。目前正在研究这个问题。如果您已经找到解决方案,请随时通知我!
  • 很高兴看到我不是唯一一个......如果我发现了,我会告诉你的。另外,如果您取得任何进展,请告诉我。
  • 我已经可以告诉你,它与框架的签名过程有关。所以问题是 Xcode 说嵌入式框架的签名是错误的,或者和你自己的框架不一样。我目前正在深入挖掘。查看这篇文章以获得对该主题的良好介绍:medium.com/@tally_b/more-unfolding-on-ios-signings-b6886236d7fc
  • 是的,这个签名过程有问题...现在,我将我的 Alamofire 框架包含到我自己的框架中,在其中签名并嵌入它,然后在应用程序本身中签名并嵌入它。我知道这很糟糕,但这至少可以让我继续编码,希望很快就会有真正的修复。
  • 感谢您提供非常全面的答案...我决定现在,我将在应用程序本身中签署“嵌入式/嵌入式”框架,希望另一个答案会出现在附近未来……

标签: ios swift xcode frameworks sign


【解决方案1】:

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

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

【讨论】:

  • 有关于这个问题的消息吗?我面临同样的问题:我的框架 A 正在使用我的框架 B,我需要最终的应用程序只包含框架 A 而不能访问框架 B
  • @Silvia 如果你绝对需要隐藏B,那么我相信你可以把它变成静态库。
  • 我不得不将嵌入式框架复制到客户端应用程序的框架目录中-谢谢您的回答
  • 感谢您拯救了我的一天。现在,我对如何在 iOS 中处理伞形框架有了清晰的认识
【解决方案2】:

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

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

【讨论】:

  • 是的,我也发现了这一点,但是,让我的所有框架都暴露给最终开发人员并不是我的目标。我希望将所有东西都很好地捆绑在一个框架(我的框架)中。谢谢..
猜你喜欢
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 2014-11-11
  • 2021-05-27
相关资源
最近更新 更多