我的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。
答案 0 :(得分:2)
通过在CocoaLumberjack.framework
中生成的Pods-MagicalRecord
目标中关联Pods.xcodeproj
,可以找到解决此问题的方法。这将允许MagicalRecord查看DDLog,因此您应该能够编译。但是,它是一个非常脆弱的解决方案,因为每次通过运行pod install
重新生成Pod项目时,您都需要重新链接框架。