未加载第三方框架库:'找不到图像'

时间:2016-06-22 17:42:14

标签: xcode7 cocoapods pspdfkit

我正在将框架升级到最新版本。早期的集成(> 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-project具有正确的引用,框架存在于相应的文件夹中

发现nameFramework未在任何构建阶段中链接(添加)。我不熟悉使用cocoapods并且不确定在Xcode构建设置中需要进行哪些更改才能从直接嵌入式框架转换到基于cocoapods的集成。

  • 如何通过“dyld:Library not loaded”错误?
  • 我应该使用哪个阶段来引用name.Framework,因为它没有生成?
  • 如何将捆绑资源从Pod复制到项目? Drag-n-drop Pods / name / Resources / name.bundle会提示“如果需要,复制项目”对话框。 < - 我不认为在使用cocoapods时我需要这样做。

[更新]使用cocoapods进行集成在使用样本或新项目时工作正常。这是当前项目设置中导致问题的原因。

Podfile:

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

通过添加$(继承)标志(如果适用)修复了以下错误

  • [!] XYZ-v2 [Release]目标会覆盖在...中定义的OTHER_LDFLAGS构建设置。

上述更改后的进度,Pods / Target支持的文件/ 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:类'SSKeychain'的重复接口定义

[更新]发布了一个新问题:CocoaPods 1.0.1 Redefinition of 'XYZ', Redefinition of enumerator 'ABC', Duplicate interface definition for 'MNO'

相关:

2 个答案:

答案 0 :(得分:4)

尝试使用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开发人员联系

答案 1 :(得分:-1)

dyld上的同样问题:未加载库:@rpath / TwilioAccessManager.framework / TwilioAccessManager 原因:未找到图像

我遇到了同样的问题,这为我解决了。我将Framework状态更改为可选。