【问题标题】:CryptoSwift used by two private third-party frameworksCryptoSwift 被两个私有第三方框架使用
【发布时间】:2020-07-30 21:02:42
【问题描述】:

我有两个使用 CryptoSwift 的私有框架(第 3 方)。

框架 1 建议使用 cocoapods 安装,而框架 2 建议使用 carthage。

使用 cocoapods 安装时,Framework 2 在设备上运行时抛出以下错误: dyld:找不到符号:_$s11CryptoSwift7PaddingO5pkcs7yA2CmFWC

引用自:/private/var/containers/Bundle/Application/94E49A38-E3C0-4CDB-8EE7-D49767C0630F/Redacted/Frameworks/Framework1.framework/FMService

预计在:/private/var/containers/Bundle/Application/94E49A38-E3C0-4CDB-8EE7-D49767C0630F/Redacted/Frameworks/CryptoSwift.framework/CryptoSwift 在/private/var/containers/Bundle/Application/94E49A38-E3C0-4CDB-8EE7-D49767C0630F/Redacted/Frameworks/Framework1.framework/FMService

在使用 carthage 安装 CryptoSwift 时,从框架 2 中抛出相同的问题: dyld:找不到符号:_$s11CryptoSwift7PaddingO5pkcs7yA2CmFWC

引用自:/private/var/containers/Bundle/Application/94E49A38-E3C0-4CDB-8EE7-D49767C0630F/Redacted/Frameworks/Framework2.framework/GWService

预计在:/private/var/containers/Bundle/Application/94E49A38-E3C0-4CDB-8EE7-D49767C0630F/Redacted/Frameworks/CryptoSwift.framework/CryptoSwift 在/private/var/containers/Bundle/Application/94E49A38-E3C0-4CDB-8EE7-D49767C0630F/Redacted/Frameworks/Framework2.framework/GWService

【问题讨论】:

    标签: ios swift frameworks


    【解决方案1】:

    这是一个传递依赖问题,由于不同的依赖管理器(Cocoapods 和 Carthage)不知道彼此的依赖图并尝试链接同一个框架两次。我认为除了

    之外没有其他简单的解决方案

    a) 使用单个依赖管理器

    b) 手动设置所有依赖项

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 2013-10-20
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多