Xcode Cocoapods依赖性和;库未加载。。。“未找到图像”;
我正在通过XCode 7.2.1构建一个命令行项目,它使用cocoapod作为其依赖项。它所依赖的框架在“DerivedData”文件夹中生成,主项目生成,但当我运行应用程序时,我得到了错误:Xcode Cocoapods依赖性和;库未加载。。。“未找到图像”;,xcode,swift,cocoapods,Xcode,Swift,Cocoapods,我正在通过XCode 7.2.1构建一个命令行项目,它使用cocoapod作为其依赖项。它所依赖的框架在“DerivedData”文件夹中生成,主项目生成,但当我运行应用程序时,我得到了错误: dyld: Library not loaded: @rpath/Alamofire.framework/Versions/A/Alamofire Referenced from: /Users/myuser/Library/Developer/Xcode/DerivedData/myproject-
dyld: Library not loaded: @rpath/Alamofire.framework/Versions/A/Alamofire
Referenced from: /Users/myuser/Library/Developer/Xcode/DerivedData/myproject-aidrwlylcmipvrckcfcztpjjkxab/Build/Products/Debug/myproject
Reason: image not found
框架版本/A下的文件树:
_CodeSignature
CodeDirectory
CodeRequirements
CodeResources
CodeSignature
Frameworks
Headers
Pods-avsubtitleswriter-umbrella.h
Modules
module.modulemap
Pods_avsubtitleswriter
Resources
Info.plist
我尝试过Cocoapods 0.39.0和1.0.0beta,在XCode中我使用的是.xcworkspace
看看Pods项目,在products下我看到Alamofire.framework是红色的,Pods_myproject.framework是黑色的,以防有什么指示
此外,我们是否需要对所依赖的库进行签名?命令行应用程序不同于常规的OSX.app或iOS应用程序,因为需要更明确地指定框架的链接。这是通过运行路径动态链接框架来实现的 看看这个
这里还有来自苹果的更多信息。看起来问题是由于默认设置的“每配置构建产品路径”是
$PODS\u SHARED\u build\u DIR/Alamofire
,这与项目认为框架应该位于的位置相冲突(框架指向另一条路径)。将值更改为$PODS\u SHARED\u BUILD\u DIR
解决了构建问题,因为这两个位置最终是相同的
在此之前,我只做了pod安装
和构建工作区
注意,一旦我解决了这个问题,我确实需要将以下路径添加到“运行时搜索路径”:
/System/Library/CoreServices/MRT.app/Contents/Frameworks/
似乎包含在中,我认为Cocoapods不支持命令行目标。通过构建OSX应用程序并从应用程序包中提取二进制文件来解决此问题。我在DerivedData或project目录中没有看到任何.dyld,因此我不确定运行路径(rpath)指向何处?我现在的目标只是在组装完整的应用程序之前测试部分API。很抱歉,除了知道rpath是解决此问题的方法外,我没有任何关于此特定问题的进一步经验。看起来此问题是由于默认设置“每配置生成产品路径”造成的这是$PODS\u SHARED\u BUILD\u DIR/Alamofire,它认为框架应该在哪里,这是冲突的。移除Alamofire后,它最终在正确的位置构建。