未加载第 3 方框架库:'Image not found'
3rd party Framework Library not loaded: 'Image not found'
我正在将框架升级到最新版本。较早的集成(> 2 年)在项目中直接复制了框架;现在让 cocoapod (0.39.0) 使用 xcode (7.2.1) 和 objective-c 项目将框架与项目集成。
在 运行 后,它生成以下错误:
dyld: Library not loaded: @rpath/name.framework/name
Referenced from:
/Users/xyz_xyz/Library/Developer/CoreSimulator/Devices/xxxxxxx/data/Containers/Bundle/Application/xxxxxxx/appname.app/appname
Reason: image not found
"Pod" xcode-项目有正确的引用并且框架存在于相应的文件夹中
发现在任何构建阶段都没有链接(添加)nameFramework。我是 cocoapods 的新手,不确定 Xcode 构建设置中需要进行哪些更改才能从直接嵌入的框架过渡到基于 cocoapods 的集成。
- 如何克服 "dyld: Library not loaded" 错误?
- 在构建期间我应该在哪个阶段引用 name.Framework,因为它没有生成?
- 如何将Pod中的bundle资源复制到项目中?拖放 Pods/name/Resources/name.bundle 提示 "copy item if needed" 对话框。 <- 我认为在使用 cocoapods 时我不需要这样做。
[更新] 当使用示例或新项目时,使用 cocoapods 的集成工作正常。这是导致问题的当前项目设置中的某些内容。
播客文件:
platform :ios, '8.0'
# use_framework for swift based pod integration. requires cocoapod 0.39.0
#use_frameworks!
pod 'GTMOAuth2'
pod 'Typhoon'
pod 'Alamofire'
# Issue with name
pod 'name', podspec:'https://customers.pspdfkit.com/cocoapods/.../latest.podspec'
target :ABC do
pod '...', '~>1'
end
target :XYZ do
pod '...', :path => 'submodules/...'
end
[更新]
- 升级到 CocoaPods 1.0.1 并修改 Podfile 以取消注释 use_frameworks!,并进行 0.39.0 到 1.0.1 迁移所需的其他更改。这是更新后的 Podfile。
platform :ios, '8.0'
# use_framework is required for dynamic links (swift) based pod integration.
use_frameworks!
target 'XYZ' do
pod 'GTMOAuth2'
pod 'Alamofire'
pod 'name', podspec:'https://customers.name.com/cocoapods/.../latest.podspec'
target :XYZ-A do
pod 'XYZ-iOS-SDK', :path => 'submodules/xyz-ios-sdk'
end
end
通过添加 $(inherited) 标志(如适用)修复了以下错误
- [!]
XYZ-v2 [Release]
目标覆盖了在... 中定义的 OTHER_LDFLAGS
构建设置
经过上述修改后的进展,Pods/Target支持Files/XYZ-v2/有Pods-XYZ-v2-frameworks.sh和resources.sh;较早的 frameworks.sh 丢失了。以下是 framworks.sh 的部分内容,其中包含复制说明。
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/GTMOAuth2/GTMOAuth2.framework"
install_framework "$BUILT_PRODUCTS_DIR/GTMSessionFetcher/GTMSessionFetcher.framework"
install_framework "$BUILT_PRODUCTS_DIR/GoogleAPIClient/GoogleAPIClient.framework"
install_framework "$BUILT_PRODUCTS_DIR/Mantle/Mantle.framework"
install_framework "${PODS_ROOT}/PSPDFKit/PSPDFKit.framework"
install_framework "$BUILT_PRODUCTS_DIR/SSKeychain/SSKeychain.framework"
fi
// and for "Release" & "Distribution" as well..
现在我正在尝试解决构建时的编译错误,这些错误与静态库和动态库包含有关。
- /path../Pods/SSKeychain/Sources/SSKeychain.h:65:1: class 'SSKeychain'
的重复接口定义
[已更新] 发布了一个新问题:CocoaPods 1.0.1 Redefinition of 'XYZ', Redefinition of enumerator 'ABC', Duplicate interface definition for 'MNO'
相关:
- OS X Framework Library not loaded: 'Image not found'
- 似乎相关:https://github.com/CocoaPods/CocoaPods/issues/4772
尝试使用 use_frameworks!
(目前已被注释掉)。 PSPDFKit是一个动态框架,所以你需要开启这个选项。
也可以尝试使用最新的 Xcode 和 CocoaPods >= 1.0.0。旧版本可能无法正常工作。
您可以在此处找到有关通过 CocoaPods 集成 PSPDFKit 的更多信息:https://pspdfkit.com/guides/ios/current/getting-started/using-cocoapods
如果所有这些都没有帮助,您可以直接通过 https://pspdfkit.com/support/request
联系 PSPDFKit 开发人员
dyld 上的相同问题:未加载库:@rpath/TwilioAccessManager。framework/TwilioAccessManager
原因:找不到图像
我遇到了同样的问题,这解决了 me.I 需要将框架状态更改为可选。
我正在将框架升级到最新版本。较早的集成(> 2 年)在项目中直接复制了框架;现在让 cocoapod (0.39.0) 使用 xcode (7.2.1) 和 objective-c 项目将框架与项目集成。
在 运行 后,它生成以下错误:
dyld: Library not loaded: @rpath/name.framework/name
Referenced from:
/Users/xyz_xyz/Library/Developer/CoreSimulator/Devices/xxxxxxx/data/Containers/Bundle/Application/xxxxxxx/appname.app/appname
Reason: image not found
"Pod" xcode-项目有正确的引用并且框架存在于相应的文件夹中
发现在任何构建阶段都没有链接(添加)nameFramework。我是 cocoapods 的新手,不确定 Xcode 构建设置中需要进行哪些更改才能从直接嵌入的框架过渡到基于 cocoapods 的集成。
- 如何克服 "dyld: Library not loaded" 错误?
- 在构建期间我应该在哪个阶段引用 name.Framework,因为它没有生成?
- 如何将Pod中的bundle资源复制到项目中?拖放 Pods/name/Resources/name.bundle 提示 "copy item if needed" 对话框。 <- 我认为在使用 cocoapods 时我不需要这样做。
[更新] 当使用示例或新项目时,使用 cocoapods 的集成工作正常。这是导致问题的当前项目设置中的某些内容。
播客文件:
platform :ios, '8.0'
# use_framework for swift based pod integration. requires cocoapod 0.39.0
#use_frameworks!
pod 'GTMOAuth2'
pod 'Typhoon'
pod 'Alamofire'
# Issue with name
pod 'name', podspec:'https://customers.pspdfkit.com/cocoapods/.../latest.podspec'
target :ABC do
pod '...', '~>1'
end
target :XYZ do
pod '...', :path => 'submodules/...'
end
[更新] - 升级到 CocoaPods 1.0.1 并修改 Podfile 以取消注释 use_frameworks!,并进行 0.39.0 到 1.0.1 迁移所需的其他更改。这是更新后的 Podfile。
platform :ios, '8.0'
# use_framework is required for dynamic links (swift) based pod integration.
use_frameworks!
target 'XYZ' do
pod 'GTMOAuth2'
pod 'Alamofire'
pod 'name', podspec:'https://customers.name.com/cocoapods/.../latest.podspec'
target :XYZ-A do
pod 'XYZ-iOS-SDK', :path => 'submodules/xyz-ios-sdk'
end
end
通过添加 $(inherited) 标志(如适用)修复了以下错误
- [!]
XYZ-v2 [Release]
目标覆盖了在... 中定义的
OTHER_LDFLAGS
构建设置
经过上述修改后的进展,Pods/Target支持Files/XYZ-v2/有Pods-XYZ-v2-frameworks.sh和resources.sh;较早的 frameworks.sh 丢失了。以下是 framworks.sh 的部分内容,其中包含复制说明。
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/GTMOAuth2/GTMOAuth2.framework"
install_framework "$BUILT_PRODUCTS_DIR/GTMSessionFetcher/GTMSessionFetcher.framework"
install_framework "$BUILT_PRODUCTS_DIR/GoogleAPIClient/GoogleAPIClient.framework"
install_framework "$BUILT_PRODUCTS_DIR/Mantle/Mantle.framework"
install_framework "${PODS_ROOT}/PSPDFKit/PSPDFKit.framework"
install_framework "$BUILT_PRODUCTS_DIR/SSKeychain/SSKeychain.framework"
fi
// and for "Release" & "Distribution" as well..
现在我正在尝试解决构建时的编译错误,这些错误与静态库和动态库包含有关。
- /path../Pods/SSKeychain/Sources/SSKeychain.h:65:1: class 'SSKeychain' 的重复接口定义
[已更新] 发布了一个新问题:CocoaPods 1.0.1 Redefinition of 'XYZ', Redefinition of enumerator 'ABC', Duplicate interface definition for 'MNO'
相关:
- OS X Framework Library not loaded: 'Image not found'
- 似乎相关:https://github.com/CocoaPods/CocoaPods/issues/4772
尝试使用 use_frameworks!
(目前已被注释掉)。 PSPDFKit是一个动态框架,所以你需要开启这个选项。
也可以尝试使用最新的 Xcode 和 CocoaPods >= 1.0.0。旧版本可能无法正常工作。
您可以在此处找到有关通过 CocoaPods 集成 PSPDFKit 的更多信息:https://pspdfkit.com/guides/ios/current/getting-started/using-cocoapods
如果所有这些都没有帮助,您可以直接通过 https://pspdfkit.com/support/request
联系 PSPDFKit 开发人员dyld 上的相同问题:未加载库:@rpath/TwilioAccessManager。framework/TwilioAccessManager 原因:找不到图像
我遇到了同样的问题,这解决了 me.I 需要将框架状态更改为可选。