1. ホーム
  2. ios

[解決済み] CocoaPodsのPodのデプロイメント先を設定する。

2023-05-04 09:38:15

質問

私はプロジェクトの依存関係を管理するために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デプロイメントターゲットでビルドされます。

各Pod依存のビルドターゲットを決定するにはどうすればよいですか。

どのように解決するのですか?

CocoaPods の一部の開発バージョン (および 1.0 以前のバージョン) では、プロジェクトのデプロイメント ターゲットが Pod にまで伝搬される場合がありますが、この場合は 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