iOS プロジェクトでいくつかのカスタム構成で Cocoapods を使用しようとしています。
3 つ (Dev、Stage、Prod) があり、それぞれにいくつかのカスタムがありますGCC_PREPROCESSOR_DEFINITIONS
。周りの人が私たち#include <path-to-pods.xcconfig>
に提案しているのを見てきましたが、これは古い方法のようです。
Cocoapods0.39
が構成に基づいて構成ファイルを自動的に生成し、それらをターゲットに自動的に追加するのを見てきました (これは良いことです)。これは、Podfile を作成する「新しい方法」について話しているこの記事
で
も確認されています。問題は、これらのファイルに私の構成が含まれていないことです。と
を使用しようとしましたが、成功しませんでした。Cocoapods + カスタム xcconfig ファイルを処理する正しい方法を知っている人はいますか? xcodeproj
link_with
5667 次
1 に答える
5
問題は、CocoaPods が xcconfig ファイルに基づいており、実際の変数を設定していることです。ただし、完全な構成が次のような xcconfig ファイルにある場合は、これらの値を使用することはできません。
#include "../Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig"
GCC_PREPROCESSOR_DEFINITIONS = ...
この場合GCC_PREPROCESSOR_DEFINITIONS
、以前の値を上書きします。
これを解決する方法は次のとおりです。
Podfile を更新して、post_install のプレフィックスで
GCC_PREPROCESSOR_DEFINITIONS
値を再定義します。PODS_
post_install do |installer| work_dir = Dir.pwd Dir.glob("Pods/Target Support Files/Pods-Demo/*.xcconfig") do |xc_config_filename| full_path_name = "#{work_dir}/#{xc_config_filename}" xc_config = File.read(full_path_name) new_xc_config = new_xc_config.sub(/GCC_PREPROCESSOR_DEFINITIONS/, 'PODS_GCC_PREPROCESSOR_DEFINITIONS') File.open(full_path_name, 'w') { |file| file << new_xc_config } end end
次の方法で xcconfig ファイルを定義します。
#include "../Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(PODS_GCC_PREPROCESSOR_DEFINITIONS) ...
この場合、カスタム値GCC_PREPROCESSOR_DEFINITIONS
を含める必要があります。PODS_GCC_PREPROCESSOR_DEFINITIONS
于 2017-09-27T22:31:58.547 に答える