OS 10.10 YosemiteとXcode 6にアップグレードしたばかりで、CocoaPods依存関係を持つiOSアプリをビルドするのに問題があります。
クリーンアンドビルドを実行した後、以下のようにApple Mac-O Linker Error
を取得します
Ld /Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Products/Release-iphonesimulator/ToWatchList.app/ToWatchList normal i386
cd "/Users/nick/Dropbox/ToWatchList/ToWatchList App"
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.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 i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk -L/Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Products/Release-iphonesimulator -F/Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Products/Release-iphonesimulator -F/Users/nick/Dropbox/ToWatchList/ToWatchList\ App/Pods/CrashlyticsFramework -F/Users/nick/Dropbox/ToWatchList/ToWatchList\ App -filelist /Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Intermediates/ToWatchList.build/Release-iphonesimulator/ToWatchList.build/Objects-normal/i386/ToWatchList.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -lPods-AFNetworking -lPods-AuxRepo -lPods-CrashlyticsFramework -lPods-Reachability -lPods-SSKeychain -lPods-SVProgressHUD -lPods-Tapstream -framework CoreGraphics -framework Crashlytics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -framework UIKit -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=8.0 -lz -lPods -Xlinker -dependency_info -Xlinker /Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Intermediates/ToWatchList.build/Release-iphonesimulator/ToWatchList.build/Objects-normal/i386/ToWatchList_dependency_info.dat -o /Users/nick/Library/Developer/Xcode/DerivedData/ToWatchList-cesjouowyxujojcvvxsvupagyozc/Build/Products/Release-iphonesimulator/ToWatchList.app/ToWatchList
ld: library not found for -lPods-AFNetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)
私のプロジェクトでOTHER_LDFLAGS
(その他のリンカーフラグ)に何かがあるようです。アプリケーションターゲット->ビルド設定->その他のリンカーフラグに移動してポッドを並べ替え、そのリストの項目を並べ替えると、同じ方法で他のポッドにリンカーエラーを生成させることができます(少なくともAFNetworkingの問題ではありません)。 CocoapodsとXcodeは、他のエラーや警告を生成していません。
これまでのところ、私は試しました:
Cocoapodsの最新バージョンへの更新:Sudo gem update cocoapods
ポッドファイル内のすべてのポッドをコメント化し、pod update
を実行してそれらをすべて削除し、コメントを外してpod update
を実行して、すべての依存関係を再ダウンロードしてインストールします。
ポッドフォルダーとロックファイルを削除してからpod install
を実行して、ポッドを最初から再インストールします
残念ながら、これらの手順のいずれもこのエラーを修正しなかったため、プロジェクトに調整が必要なビルド設定があると思いますが、次に何を試すかわかりません。
これを修正するには、削除する必要がありましたlibPods.a
Application Targets-> General-> Linked Frameworks and Librariesの下。それは赤で強調表示されました(不明を意味します)が、それを置き換える必要はありませんでした。単にそれをクリアするだけで十分でした。
.xcworkspace
ファイルではなく.xcodeproj
ファイルを開いていることを再確認してください。これは、この種の問題を引き起こす可能性のある一般的な間違いです。
私にとっての問題は、私のプロジェクトとCocoapodのビルド構成が一致しないことでした。つまり、コンパイルされたライブラリの異なるディレクトリを探していたのです。
同じ問題がありました。
私の問題は、ターゲットの「アクティブアーキテクチャの構築」であり、ポッドターゲットが完全に一致していませんでした。
それらを同一にした後、問題は解決されました。
「プロジェクトターゲット->ビルド設定->前処理->プリプロセッサマクロ」に移動します。 「プリプロセッサマクロ」のすべてのデバッグ、統合、リリースで「COCOAPODS = 1」を設定します
「プロジェクトターゲット」の下の「その他のリンカーフラグ」に以下を追加します$ inherited -ObjC -lc ++ -all_load
Deploymentターゲットを7.0から8.0にアップグレードし、use_frameworksを有効にした後も同じ問題が発生しました。