CocoaPods iOS框架链接i386文件

时间:2016-08-25 21:17:13

标签: ios swift xcode cocoapods linker-errors

我在尝试将框架链接到我的测试项目时遇到了问题......

我主要了解CocoaPods的工作原理,以及我试图将这些文件中的实际框架链接起来的原因超出了这个问题的范围。

在我的CocoaPods“Podfile”中,我有以下内容。

# Uncomment this line to define a global platform for your project
platform :ios, '8.0'


target 'GasAPI' do
    platform :ios, '8.0'
    use_frameworks!

    pod "Alamofire"
    pod "SwiftyJSON"

    target 'GasAPITests' do
        inherit! :search_paths

        # Pods for testing

        pod "Alamofire"
        pod "SwiftyJSON"
    end
end

但是,每当我进行“pod安装”时,如果我进入“Pods”项目的Project设置,“Base SDK”将更改为“Latest OS X”。

Pods project with wrong architecture

我已确保所有“目标”都将“最新iOS(iOS 9.3)作为其基本SDK。

但是,当我尝试将其中一个文件链接到我的测试项目中时,我收到一个链接器错误,在我看来它正在寻找OS X库,而不是iOS库。

这是我得到的最新错误:

Ld /Users/brent/Library/Developer/Xcode/DerivedData/GasAPI-gsmqzrqwzjzvuhdhmovzfhwbfbow/Build/Products/Debug-iphonesimulator/GasApiTestProject2.app/GasApiTestProject2 normal i386
    cd /Users/brent/Dropbox/NJVC/API/GasApiTestProject2
    export IPHONEOS_DEPLOYMENT_TARGET=9.3
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk -L/Users/brent/Library/Developer/Xcode/DerivedData/GasAPI-gsmqzrqwzjzvuhdhmovzfhwbfbow/Build/Products/Debug-iphonesimulator -F/Users/brent/Library/Developer/Xcode/DerivedData/GasAPI-gsmqzrqwzjzvuhdhmovzfhwbfbow/Build/Products/Debug-iphonesimulator -filelist /Users/brent/Library/Developer/Xcode/DerivedData/GasAPI-gsmqzrqwzjzvuhdhmovzfhwbfbow/Build/Intermediates/GasApiTestProject2.build/Debug-iphonesimulator/GasApiTestProject2.build/Objects-normal/i386/GasApiTestProject2.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -mios-simulator-version-min=9.3 -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -Xlinker -add_ast_path -Xlinker /Users/brent/Library/Developer/Xcode/DerivedData/GasAPI-gsmqzrqwzjzvuhdhmovzfhwbfbow/Build/Intermediates/GasApiTestProject2.build/Debug-iphonesimulator/GasApiTestProject2.build/Objects-normal/i386/GasApiTestProject2.swiftmodule -framework GasAPI -framework Result -framework SwiftyJSON -framework Moya -framework Alamofire -framework ReachabilitySwift -framework SwiftyBeaver -framework SwiftyRSA -framework Quick -framework Nimble -Xlinker -dependency_info -Xlinker /Users/brent/Library/Developer/Xcode/DerivedData/GasAPI-gsmqzrqwzjzvuhdhmovzfhwbfbow/Build/Intermediates/GasApiTestProject2.build/Debug-iphonesimulator/GasApiTestProject2.build/Objects-normal/i386/GasApiTestProject2_dependency_info.dat -o /Users/brent/Library/Developer/Xcode/DerivedData/GasAPI-gsmqzrqwzjzvuhdhmovzfhwbfbow/Build/Products/Debug-iphonesimulator/GasApiTestProject2.app/GasApiTestProject2

ld: framework not found Result
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试删除所有Pod并重建并重新添加到项目中,它似乎仍然希望默认为OS X.

我在OS X 10.11.6上运行Xcode v7.3.1并使用CocoaPods v1.0.1

我找到了很多关于如何链接iOS和& OS X项目,但这不是问题。看起来我的链接器正在寻找它不应该的架构。

如何解决此错误需要做什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试点击产品,然后按住选项,您将看到干净的转入清洁构建文件夹并单击它,然后运行项目。

答案 1 :(得分:0)

i386真的与这个问题毫无关系,但它有点像红鲱鱼,把我扔了。

对于我正在构建的API,没有“复制文件”部分。

因此,在Xcode中,在“Build Phases”下,我添加了一个新的“Copy Files”部分,然后选择“Frameworks”作为“Destination”。我添加了我需要的所有框架,一切正常!

希望这可以帮助其他任何可能遇到此问题的人!

Perlguy。