2015-03-13 50 views
3

我與我們的私人podspec有一個很大的問題,所有工作正常,直到我們更新到cocoapods 0.35。Podspec與谷歌分析的依存關係Cocoapods 0.36

該規範是不是很複雜,但依賴於GoogleAnalytics-iOS-SDK 這是我們的莢規格:

{ 
    "name": "RKTagManager", 
    "version": "0.0.1", 
    "summary": "Google TagManager wrapper.", 
    "license": { 
    "type" : "Closed Source", 
    "text" : "This library is as is, not warrenty of any kind." 
    } 
    "platforms": { 
    "ios": "5.1.1" 
    }, 
    "requires_arc" : true, 
    "source": { 
    "hg": "<snip", 
    "revision" : "RKTagManager-0.0.1" 
    }, 
    "dependencies": { 
    "GoogleAnalytics-iOS-SDK": [] 
    }, 
    "source_files": [ 
     "Source/RKTagManager/*.{h,m}" 
    ] 
} 

當我嘗試驗證它的編譯失敗,出現以下消息:

Ld /var/folders/9r/y21mxssd6rgf6gbrlhqsqv5m0000gp/T/CocoaPods/Lint/build/Pods.build/Release-iphonesimulator/Pods-RKTagManager.build/Objects-normal/i386/RKTagManager normal i386 
    cd /var/folders/9r/y21mxssd6rgf6gbrlhqsqv5m0000gp/T/CocoaPods/Lint/Pods 
    export IPHONEOS_DEPLOYMENT_TARGET=5.1.1 
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/<snip>/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/texbin" 
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.2.sdk -L/var/folders/9r/y21mxssd6rgf6gbrlhqsqv5m0000gp/T/CocoaPods/Lint/build/Release-iphonesimulator/Pods -F/var/folders/9r/y21mxssd6rgf6gbrlhqsqv5m0000gp/T/CocoaPods/Lint/build/Release-iphonesimulator/Pods -filelist /var/folders/9r/y21mxssd6rgf6gbrlhqsqv5m0000gp/T/CocoaPods/Lint/build/Pods.build/Release-iphonesimulator/Pods-RKTagManager.build/Objects-normal/i386/RKTagManager.LinkFileList -install_name @rpath/RKTagManager.framework/RKTagManager -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -Xlinker -objc_abi_version -Xlinker 2 -ObjC -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=5.1.1 -framework Foundation -framework GoogleAnalytics_iOS_SDK -framework OIFoundation -single_module -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /var/folders/9r/y21mxssd6rgf6gbrlhqsqv5m0000gp/T/CocoaPods/Lint/build/Pods.build/Release-iphonesimulator/Pods-RKTagManager.build/Objects-normal/i386/RKTagManager_dependency_info.dat -o /var/folders/9r/y21mxssd6rgf6gbrlhqsqv5m0000gp/T/CocoaPods/Lint/build/Pods.build/Release-iphonesimulator/Pods-RKTagManager.build/Objects-normal/i386/RKTagManager 
ld: warning: embedded dylibs/frameworks only run on iOS 8 or later 
Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_TAGManager", referenced from: 
     objc-class-ref in RKTagManager.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我只是不明白爲什麼它不能再找到TAGManager調用。 我使用的是Xcode 6.2,而RKTagManager適用於iOS。

+0

你好,能否請您爲Xcode的版本和支持架構的細節。謝謝 – 2015-03-23 08:00:58

+0

我已添加到信息。 – rckoenes 2015-03-23 10:09:20

+0

我認爲問題在於'GoogleAnalytics-iOS-SDK'規範鏈接到谷歌網址,但舊的「圖書館」不存在了。在那裏你只能找到他們正在使用的新框架。 – Moxy 2015-03-23 21:04:43

回答

3

該解決方案似乎是強制CocoaPods建立作爲庫的pod規範。由於0.36豆莢構建框架,並沒有孤獨者作爲框架。

使用--use-libraries編譯爲pod spec作爲框架的庫時刻。

你可以做到這一點,如:

pod repo push OIPods RKTagManager.podspec.json --use-libraries 
+0

偉大的解決方案找到了一個問題,我的吊艙失敗 - 錯誤| [MKDKit/MKDUIKit,MKDKit/MKDAnalytics]返回不成功的退出代碼。 - NOTE | [MKDKit/MKDUIKit,MKDKit/MKDAnalytics] clang:error:linker命令失敗,退出代碼1(使用-v查看調用) – StackRunner 2015-04-09 15:58:13