Cocoapods 依赖和 "Library not loaded ... image not found"

Cocoapods dependency and "Library not loaded ... image not found"

我正在通过 XCode 7.2.1 构建一个命令行项目,它使用 Cocoapods 作为其依赖项。它所依赖的框架在'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

框架 versions/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 项目,在产品下我看到 Alamofire.framework 是红色的,Pods_myproject.framework 是黑色的,以防万一?

此外,我们是否需要签署我们依赖的库?

命令行应用程序不同于常规的 OSX .app 或 iOS 应用程序,因为需要更明确地指定框架的链接。这是通过 运行-path 动态链接框架来完成的。

看看这个issue

还有一些来自 Apple 的 info

看起来问题是由于 "per-configuration build products path" 的默认设置 $PODS_SHARED_BUILD_DIR/Alamofire,这与项目认为框架应该在的位置发生冲突(框架指向另一条路径)。将值简单地更改为 $PODS_SHARED_BUILD_DIR 解决了构建问题,因为这两个位置最终是相同的。

在此之前,我除了 pod install 和构建工作区外什么都没做。

注意,一旦我解决了这个问题,我确实需要将以下路径添加到 "runtime search paths":

/System/Library/CoreServices/MRT.app/Contents/Frameworks/

似乎被 issue #4963

覆盖