更新到Parse 1.8.4 pod后Apple Mach-O Linker错误

时间:2015-09-16 15:05:50

标签: ios parse-platform xcode6 cocoapods

Aftre更新到最新的Parse pod(1.8.4)我只在构建设备时才收到Apple Mac-O链接器错误。模拟器工作正常

Ld /Users/mile/Library/Developer/Xcode/DerivedData/Nanuism-ezuxcvwcbtlytwdpwrmzcxghttsw/Build/Products/Debug-iphoneos/ParseCrashReporting.framework/ParseCrashReporting normal arm64
    cd "/Users/mile/Projects/Nanusim Xcode/nanusim_obejctiveC/Nanuism/Pods"
    export IPHONEOS_DEPLOYMENT_TARGET=8.4
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk -L/Users/mile/Library/Developer/Xcode/DerivedData/Nanuism-ezuxcvwcbtlytwdpwrmzcxghttsw/Build/Products/Debug-iphoneos -L/Users/mile/Projects/Nanusim\ Xcode/nanusim_obejctiveC/Nanuism/Pods/ParseCrashReporting -F/Users/mile/Library/Developer/Xcode/DerivedData/Nanuism-ezuxcvwcbtlytwdpwrmzcxghttsw/Build/Products/Debug-iphoneos -filelist /Users/mile/Library/Developer/Xcode/DerivedData/Nanuism-ezuxcvwcbtlytwdpwrmzcxghttsw/Build/Intermediates/Pods.build/Debug-iphoneos/ParseCrashReporting.build/Objects-normal/arm64/ParseCrashReporting.LinkFileList -install_name @rpath/ParseCrashReporting.framework/ParseCrashReporting -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -dead_strip -ObjC -lParseCrashReportingLib -lsqlite3 -lstdc++.6 -lz -framework CFNetwork -framework Foundation -framework Security -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=8.4 -framework Bolts -framework CFNetwork -framework Foundation -framework Parse -framework Security -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1.8.4 -Xlinker -dependency_info -Xlinker /Users/mile/Library/Developer/Xcode/DerivedData/Nanuism-ezuxcvwcbtlytwdpwrmzcxghttsw/Build/Intermediates/Pods.build/Debug-iphoneos/ParseCrashReporting.build/Objects-normal/arm64/ParseCrashReporting_dependency_info.dat -o /Users/mile/Library/Developer/Xcode/DerivedData/Nanuism-ezuxcvwcbtlytwdpwrmzcxghttsw/Build/Products/Debug-iphoneos/ParseCrashReporting.framework/ParseCrashReporting



ld: 14 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

2 个答案:

答案 0 :(得分:2)

这是ParseCrashReporting库的问题。版本1.8.2没有此问题。在撰写本文时,问题出现在1.8.3,1.8.4和1.8.5(当前)中。

如果您可以从6.4升级到Xcode 7,则此问题不会出现。

如果你仍然必须使用6.4,那么它似乎与在测试目标中包含Pods.xcconfig以及为设备构建时有关。

具体来说,链接器错误是:

duplicate symbol _llvm.cmdline in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(GTMLogger.o)
duplicate symbol _llvm.embedded.module in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(GTMLogger.o)
duplicate symbol _llvm.cmdline in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(HTTPMultipartUpload.o)
duplicate symbol _llvm.embedded.module in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(HTTPMultipartUpload.o)
duplicate symbol _llvm.cmdline in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(uploader.o)
duplicate symbol _llvm.embedded.module in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(uploader.o)
duplicate symbol _llvm.cmdline in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(BreakpadController.o)
duplicate symbol _llvm.embedded.module in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(BreakpadController.o)
duplicate symbol _llvm.cmdline in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(ParseCrashReporting.o)
duplicate symbol _llvm.embedded.module in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(ParseCrashReporting.o)
duplicate symbol _llvm.cmdline in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReportingAnalytics.o)
duplicate symbol _llvm.embedded.module in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReportingAnalytics.o)
duplicate symbol _llvm.cmdline in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReport.o)
duplicate symbol _llvm.embedded.module in:
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReporter.o)
    [redacted]/ParseCrashReporting/libParseCrashReportingLib.a(PFCrashReport.o)
ld: 14 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这些都与libParseCrashReportingLib.a

有关

我在这里向Parse提交了一个问题https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/issues/271,其中包含一个指向示例项目的链接以重现它。但是,步骤很简单:

  1. 在Xcode 6.4中创建一个新的单视图iOS应用程序项目。
  2. 创建一个Podfile,其中包含ParseCrashReporting

     source 'https://github.com/CocoaPods/Specs.git'
     platform :ios, '8.0'
     pod 'ParseCrashReporting', '~> 1.8'
    
  3. 执行pod install

  4. 打开生成的xcworkspace并将Pods.xcconfig添加到测试目标。 configuration screenshot
  5. 为设备构建
  6. 构建因测试目标的上述链接器错误而失败。

答案 1 :(得分:-1)

请查看findObjectsInBackgroundWithBlock方法中的签名。将AnyObject更改为PFObject应该可以解决问题。