ios - 使用_框架!和库 repo 根目录中的 podspec

标签 ios swift cocoapods magicalrecord

我的 iOS 项目中有以下依赖项:

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
platform :ios, '8.0'

pod 'CocoaLumberjack'

# other dependencies here    

pod 'MagicalRecord', :git => 'https://github.com/magicalpanda/MagicalRecord.git', :branch => 'develop'

我目前使用最新版本的 CocoaPods (0.37.0)。 pod install 没有给出任何警告或错误,但是当我尝试构建时,出现链接器错误:

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_DDLog", referenced from:
      objc-class-ref in MagicalRecord+ErrorHandling.o
      objc-class-ref in NSManagedObject+MagicalDataImport.o
      objc-class-ref in NSManagedObject+MagicalRecord.o
      objc-class-ref in NSManagedObjectContext+MagicalObserving.o
      objc-class-ref in NSManagedObjectContext+MagicalRecord.o
      objc-class-ref in NSManagedObjectContext+MagicalSaves.o
      objc-class-ref in NSObject+MagicalDataImport.o

显然,MagicalRecord 没有看到提供符号的 CocoaLumberjack。文档说:

有时您可能想使用 Pod 的最新版本、特定修订版或您自己的分支。如果是这种情况,您可以在 pod 声明中指定它。 但请务必注意,这意味着该版本必须满足其他 Pod 对该 Pod 的任何其他依赖性。

但是,没有解释应该如何准确地满足这些依赖关系。谁能解释一下?一切正常,直到我添加 use_frameworks! 以使用用 Swift 编写的 pod。

最佳答案

通过在 Pods.xcodeproj 中生成的 Pods-MagicalRecord 目标中链接 CocoaLumberjack.framework 似乎可以解决此问题.这将允许 MagicalRecord 看到 DDLog,所以你应该能够编译。但是,这是一个非常脆弱的解决方案,因为每次通过运行 pod install 重新生成 Pods 项目时都需要重新链接框架。

source

关于ios - 使用_框架!和库 repo 根目录中的 podspec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30053842/

相关文章:

ios - 从 Firebase 接收多个重复推送通知

ios - 如何删除具有淡入淡出效果且没有红色删除按钮的滑动关闭的 UITableViewCell?

ios - AVPlayer 无效文件

swift - “as”测试在 Swift switch 语句中始终是 true 警告

arrays - 从异步调用修改数组不会快速修改数组

ios - 如何在 iOS 中为 SonarQube Analyzer 包含 Pod 或 Frameworks 等依赖项目

ios - 将委托(delegate)从第三个设置为第一个 viewController

ios - 导航栏中的 TextField

app-store - 电子邮件错误 : "Unexpected CFBundleExecutable Key"

ios - 创建 podspec 以发布静态库