私は多くの場合、アプリのビルドに使用しているのと同じマシンで常に実行されている開発サーバーと一緒に iOS プロジェクトに取り組んでいます。典型的なシナリオは、Rails アプリを実行していhttp://localhost:3000
て、デバイスでテストしていることです。デバイスでテストするには、アプリがローカル ネットワーク上の開発サーバーと通信できるように、解決済みの IP アドレスが必要です。
環境変数をプリプロセッサ マクロに設定するために使用できること、およびbash スクリプトでGCC_PREPROCESSOR_DEFINITIONS
実行することによってビルド マシンの IP アドレスを取得できることを知っています。ifconfig | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' | awk '{ print $2}'
などの値を使用して定義MY_SERVER_URL
したいのですが、上記のスクリプトを使用して設定する方法がわかりません。GCC_PREPROCESSOR_DEFINITIONS
'@"http://${BUILD_MACHINE_IP_ADDRESS}:3000"'
${BUILD_MACHINE_IP_ADDRESS}
ifconfig
実行スクリプトビルド フェーズを使用して構成ファイルを編集することを検討しましたが、このような変更の影響は苛立たしいものです。たとえば、IP アドレスが頻繁に変更され、競合が発生するため、ファイルをソース管理に含めたくありません。ただし、アプリケーションがアクセスできるように、プロジェクト ファイルに含める必要があります。これにより、プロジェクトのビルドに必要なファイルがソース管理に含まれず、見苦しくなります。
export BUILD_MACHINE_IP_ADDRESS=`ifconfig | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' | awk '{ print $2}`
また、実行スクリプトビルド フェーズで実行しようとしましたが、結果は得られません。