7

ログイン時にメイン アプリを起動するヘルパー アプリ用の別のプロジェクトを含む Mac アプリ用の Xcode プロジェクトがあります。${PRODUCT_NAME}のようなプロジェクト変数を使用して、ヘルパー アプリのバンドル識別子をメイン アプリから基にする方法はあり${ROOT_PRODUCT_IDENTIFIER}ますか?

したがって、メイン アプリのバンドル識別子は次のようになります。

com.mydomain.app

ヘルパー アプリのバンドル識別子は次のようになります。

${ROOT_PRODUCT_IDENTIFIER}.Helpercom.mydomain.app.Helper

これに関する私の目標は、どの Mac アプリでも使用できるログイン ヘルパー アプリで非常に使いやすい一般的な起動を作成することです。 com/kgn/LaunchAtLoginHelper

4

1 に答える 1

3

残念ながら、お探しの変数は存在しません。こちらまたはこちらをご覧ください

しかし、独自の環境変数を作成することで 1 つの回避策を考えることができます。これは難しくありません。目的を達成するために、識別子を抽出して環境変数に保存するメイン プロジェクトのビルド スクリプトを作成します。

メイン プロジェクトのターゲットに移動し、[ビルド フェーズの追加] -> [実行スクリプトの追加] をクリックします。表示されるシェル ボックスに、次のように入力します。

ROOT_PRODUCT_IDENTIFIER_PLIST=`/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" $INFOPLIST_FILE`
export ROOT_PRODUCT_IDENTIFIER=`eval echo $ROOT_PRODUCT_IDENTIFIER_PLIST`

ヘルパーのプロジェクトに移動し、その plist/build 設定で $(ROOT_PRODUCT_IDENTIFIER) を参照します。

メインプロジェクトを後者の依存関係として追加することを忘れないでください。これにより、必要なときに変数が常に設定されます。

于 2012-11-21T17:42:58.067 に答える