2016-03-31 6 views
4

iOSプロジェクトでいくつかのカスタム設定でCocoapodsを使用しようとしています。
私は3つ(Dev、Stage、Prod)を持っていて、それぞれにカスタムがありますGCC_PREPROCESSOR_DEFINITIONS。 私は人々に私達に#include <path-to-pods.xcconfig>を提案して見ましたが、これはこれを行う古い方法のようです。
私はCocoapods 0.39が自分の設定に基づいて設定ファイルを自動的に生成し、自動的にターゲットに追加するのを見ました(これは良いことです)。
これは、this articleによって確認され、Podfilesを作成する「新しい方法」について話しています。 これらのファイルに自分の設定が含まれていないという問題があります。
xcodeprojlink_withを使用しようとしましたが、成功しませんでした。 Cocoapods +カスタムxcconfigファイルを扱う正しい方法は何ですか?Cocoapodsとカスタムxcconfig

+0

自分のポッドスペックを管理しているのか、サードパーティのポッドを使用していますか? –

+0

サードパーティのポッド。 – pasine

+0

どのようにあなた自身のものから古い方法でcocoapods xcconfigファイルを含めるのですか?これは、ココアポッドとカスタム設定ファイルを組み合わせる最も簡単な解決策です。あなたはもっと良い解決策を見つけましたか? – deadbeef

答えて

1

問題は、CocoaPodsはxcconfigファイルに基づいており、実際の変数を設定することです。この場合、

#include "../Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig" 
GCC_PREPROCESSOR_DEFINITIONS = ... 

GCC_PREPROCESSOR_DEFINITIONSは、以前の値を上書きします。しかし、これらの値は、完全な設定は次のようにxcconfigファイルのときにどのような方法で使用することはできません。

  1. 更新Podfile post_installにPODS_接頭辞でGCC_PREPROCESSOR_DEFINITIONS価値を再定義する:

    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 
    
  2. は、次の方法で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 &のカスタム値を含める必要があります。