16

アプリをFacebookのSSOで動作させる一環として、FacebookでSSOを使用するiOSアプリがあります。これには、info.plistでFacebookAppIdとコールバックURLを指定する必要があります。私は2つの異なるFacebookグループを持っています。1つはテスト用で、もう1つは本番用です。プリプロセッサディレクティブに基づいて、上記で指定した2つのキーの値を設定できるようにしたいと思います。

私のMessageBomb-Prefix.pchには、次のものがあります。これは正常に機能します。

#ifdef TEST
    //Development environments
    #define PARSE_APP_ID "dev parse app id"
    #define PARSE_CLIENT_ID "dev parse client id"
    #define FB_APP_ID "dev facebook id"
#else
    //Production environments
    #define PARSE_APP_ID "prod parse app id"
    #define PARSE_CLIENT_ID "prod parse client id"
    #define FB_APP_ID "prod facebook id"
#endif

しかし、私のinfo.plistで私は以下を実行しましたが、機能していないようです:

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb${FB_APP_ID}</string>
            </array>
        </dict>
    </array>
    <key>FacebookAppID</key>
    <string>${FB_APP_ID}</string>

私がやろうとしていることをすることさえ可能ですか?info.plistを前処理するようにプロジェクトを設定しました。

ありがとうピーター

4

3 に答える 3

16

ビルド設定に入ると、ディレクティブを使用してプロジェクトに配置したファイルに設定Preprocess Info.plist Fileしてから設定できます。YESInfo.plist Preprocessor Prefix File.h#define

たとえば、Info.plistファイルにキーを追加するtestKeyと、値がTEST_VALUE. 次にtest.h、プロジェクトに次のように配置します。

#define TEST_VALUE hello_world

そして、私はに設定Preprocess Info.plist FileしますYESInfo.plist Preprocessor Prefix Filetest.h

そのキーの値を取得すると、「hello_world」になります。マクロの値を頻繁に変更する場合、XCode はコンパイルされた値をキャッシュしているように見えるため、Product/Clean を実行して変更を確認する必要がある場合があります。

于 2013-01-08T02:23:03.710 に答える
9

plist でアクセスするには:

新しい変数を作成する
ここに画像の説明を入力


定義する
ここに画像の説明を入力


あなたの情報plistでそれを使用してください
ここに画像の説明を入力

于 2014-07-11T12:16:26.097 に答える
8

Info.plist プリプロセッサを使用すると、s ではなく Info.plist でビルド設定を使用できます#define。そのため、ターゲットでカスタム ユーザー ビルド設定として定義することができFB_APP_ID(そして、さまざまなスキームのオーバーライドを与えることができます)、この値は Info.plist で利用できるようになります。ただし、ユーザーのビルド設定はコードに公開されません。つまり、プリプロセッサ定義のビルド設定をいじって、次のようなエントリを追加しない限り、

FB_APP_ID=@\"$(FB_APP_ID)\"

(シェル呼び出しを過ぎて二重引用符を取得するには、バックスラッシュが必要です)

アプリ ID にスペースが含まれている可能性がある場合は、引用符を追加してシェル呼び出しを通過する必要があります。

FB_APP_ID="@\"$(FB_APP_ID)\""

最終的に、次のようなビルド設定ができます。

ビルド設定

于 2013-01-08T01:20:50.237 に答える