CocoaPodsのポッドのデプロイメントターゲットを設定する 質問する

CocoaPodsのポッドのデプロイメントターゲットを設定する 質問する

私はプロジェクトの依存関係を管理するために CocoaPods を使用しています。Podfile を次のように記述しました:

target 'MyApp' do
  platform :ios, '8.0'
  # Uncomment this line if you're using Swift or would like to use dynamic frameworks
  #use_frameworks!

  # Pods for MyApp
  pod 'KeepLayout', :git => 'https://github.com/iMartinKiss/KeepLayout', :tag => 'v1.6.0'
  pod 'EasyMapping'

  target 'MyAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'MyAppUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

このファイルはCocoaPods 0.xでは問題なく動作しますが、CocoaPods 1.0にアップデートした後はプロジェクトをコンパイルできません。

pod update 

エラーが発生してプロジェクトをコンパイルできません:

/Users/<...>/Pods/KeepLayout/Sources/KeepAttribute.m:195:1: 現在のデプロイメント ターゲットは弱参照をサポートしていないため、弱プロパティを合成できません

すべてのライブラリが異なるデプロイメント ターゲットでビルドされていることがわかりました。たとえば、KeepLayout は 4.3 デプロイメント ターゲットでビルドされています。

すべてのポッド依存関係のビルド ターゲットをどのように決定できますか?

ベストアンサー1

CocoaPodsの開発バージョン(および1.0より前のバージョン)では、プロジェクトのデプロイメントターゲットがポッドに伝播されている可能性がありますが、これは1.0ではもうそうではないこれを回避するには、現在の開発者が推奨するインストール後のフックを使用します。

生成されたPodsプロジェクト内の各Podにハードコードされたデプロイメントターゲットを強制するブルートフォースアプローチを次に示します。これを終わりあなたのPodfile

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.2'
    end
  end
end

おすすめ記事