Xcode Cocoapods依赖性和;库未加载。。。“未找到图像”;

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-

我正在通过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-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后,它最终在正确的位置构建。