6

私はJenkinsを使用して継続的な統合ビルドを行っています。私は同じ設定コードの多くを持っているかなりの仕事を持っています。私はこれをすべて、あらかじめ実行してビルドしておきたい共通のスクリプトファイルに入れています。Xcode構築フェーズ実行スクリプト内でグローバル環境変数を設定する

私はそのスクリプト内でいくつかの環境変数を設定する方法を理解することができませんでした。そのため、XcodeビルドコマンドとJenkinsビルドの両方がそれらを見ることができます。

これが可能なら誰でも知っていますか?

+0

おそらくこの回答は役に立ちます - http://stackoverflow.com/a/32743908/67824グローバル環境変数を定義することはできませんが、xcodeprojビルド設定を変更できるようになります。これはおそらく環境変数が必要な設定です(少なくとも私の場合)。 –

答えて

5

あなたが求めるものを正確に行うことはできません。プロセスは、別のプロセスの環境変数を変更することはできません。事前および事後ビルドステップと実際ビルドステップは、異なるプロセスで実行されます。

しかし、一般的な環境変数を設定し、すべてのビルド間でそのスクリプトを共有するスクリプトを作成できます。

ザ・はxcodebuild最初のスクリプトでコマンドを実行するためにシェルを呼び出し、呼び出します。

# Note the dot in the beginning of the next line. It is not a typo. 
. set_environment.sh 
xcodebuild myawesomeapp.xcodeproj 

スクリプトは次のようになります。

export VARIABLE1=value1 
export VARIABLE2=value2 

あなたの仕事はどのように正確に共有しますスクリプトは環境とユースケースによって異なります。あなたは

  • 場所いくつかのよく知られているジェンキンスホスト上の場所や
  • 場所でスクリプトがバージョン管理、ソースツリー内のスクリプトは、すべてのジョブが同じリポジトリまたは
  • 場所スクリプト内を共有することができた場合独自のリポジトリを作成し、スクリプトをビルドアーティファクトとしてアーカイブするJenkinsビルドを作成します。他のすべてのジョブは、Artifactプラグインのコピーを使用して、スクリプトジョブの成果物からスクリプトのコピーを取得します。
+0

これがどのように役立つか分かりません。私(そして他の多くの人たち)がこれを検討している理由は、環境変数を設定することによって、ビルドステップが次のビルドステップに影響を及ぼすことにあります。私の場合は、あらかじめ定義されたプロセッサマクロを設定するだけでも十分ですが、あなたの答えはどちらでもありません。あるいは、特定のビルドステップが、変数をエクスポートするスクリプトをディスクに書き込む必要があり、他のすべてのターゲットによって実行されることを意味しますか? –

0

Apple's Technical Q&A QA1067から、あなたがファイル/Users/YOU/.MacOSX/environment.plistを作成し、すべてのプロセスが(自分のホームディレクトリにあるenvironment.plistファイルを持つユーザーによって起動)ご希望の環境変数を移入した場合、これらの環境変数をピックアップすることが表示されます。新しく起動したプロセスが変数を取得する前に、コンピュータを再起動(または単にログアウトしてから再起動)する必要があります。
This articleも、Xcodeはこれらの変数をビルドフェーズスクリプトに渡すと主張しています。まだテストしていませんが、次回にMacBookを再起動すると、動作したかどうかがわかります。 http://developer.apple.com/library/mac/#/legacy/mac/library/qa/qa1067/_index.html

Q: How do I set environment for all processes launched by a specific user?


A: It is actually a fairly simple process to set environment variables for processes launched by a specific user.

から

。環境ファイルで を検索しログインウインドウ特殊な環境ファイルごとに、ユーザログがありますis: 〜/ .MacOSX/environment.plist(大文字と小文字が区別されますので注意してください)。ここで、 '〜'は、関心のあるユーザーのホームディレクトリです。 端末を使用して自分自身で.MacOSXディレクトリを作成する必要があります( mkdir .MacOSXと入力)。あなた自身もファイル を作成する必要があります。環境ファイルは実際にはXML/plist形式の です(ファイル名の最後に.plist拡張子を追加するか、 これは動作しません)。

+0

それは動作しましたか?私はこのメソッドを使用して私の変数を見るためにxcodeを得ることができなかった... – brendanjerwin

+0

@ブレンドンいいえ、それは残念なことに私のどちらのためにもうまくいきませんでした。 – chown

関連する問題