iOS用とOSX用の2つのターゲットを含むプロジェクトがあります。Podfile は次のようになります。
# Pods
xcodeproj 'ipolypus.xcodeproj'
pod 'BlocksKit'
pod 'Reachability'
pod 'MKStoreKit'
# Objective C
pod 'libextobjc'
pod 'LinqToObjectiveC'
target :ipolypus, :exclusive => false do
platform :ios, '5.1.1'
pod 'CocoaLumberjack'
pod 'EGOTableViewPullRefresh'
pod 'SVProgressHUD'
pod 'FlurrySDK'
# AdMob SDK and AdMob mediation adapter
pod 'AdMob'
pod 'AdMobMediationAdapterIAd'
end
target :ipolypusTests, :exclusive => true do
pod 'CocoaLumberjack'
end
target :'ipolypus-osx', :exclusive => false do
platform :osx
pod 'CocoaLumberjack'
end
実行後pod install
、2 つの Pods ライブラリが最初のターゲット ( ipolypus
) に対してリンクされていることがわかります。
libPods.a
とlibPods-ipolypus.a
プロジェクトをすぐにビルドしようとすると、FlurrySDK シンボルが見つからないなどの奇妙なリンク エラーが発生します。
それを修正するには、ライブラリのリストから削除して、ターゲットとリンクし、再度実行libPods.a
してから、最初のターゲットを手動で削除してから、ビルドしてリンクする必要があります。libPods-ipolypus.a
pod install
libPods.a
作り方が間違っているに違いないPodfile
。関連する投稿を確認しましたが、同様の問題は見つかりませんでした。
アップデート
リンクエラーはこちら
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_Flurry", referenced from:
objc-class-ref in IOSAppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
上記の手順を実行すると、次pod install
またはまでビルドが成功しますpod update
。
また、プロジェクトにはかなり長い間単一のターゲットがあり、OSXターゲットを追加してそのために変更Podfile
したことにも言及する必要があります。それが問題の始まりです。しかし、フォルダーを削除Podfile.lock
してワイプしようとしましたが、それでも問題が発生します。Pods
また、同じシンボルが既に定義されているためにリンカーが失敗した別のタイプのエラーがありましたが、もうそのシンボルは表示されません。