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
覆盖
我正在通过 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
覆盖