2016-12-02 3 views
1

Xcode 8でプロジェクトをビルドすると、最終ビルドは~/Library/Developer/Xcode/DerivedData/MyProject-[add-lots-of-random-chars-here]/Build/Products/Release-iphoneosに保存されます。それを構築した後、Xcodeがアプリケーションバンドルをユーザー指定のパスにコピーする方法はありますか?例えばそれを構築した後、Xcodeで構築されたアプリケーションバンドルを/MyBuildsにコピーするにはどうすればいいですか?ビルドを完了した後にビルドを別のディレクトリにコピーする

私は、Xcodeのプロジェクト設定で派生データを格納するためのパスを変更できることを知っていますが、そうすることで、Xcodeはオブジェクトコードなどの中間データを含むすべてのデータを保存します欲しいです。実際には、ビルドプロセスで使用される中間ファイルを使用せずに、配布可能な最終のアプリケーションバンドルをユーザー指定の場所にコピーするだけです。

どうすればいいですか?確かにあなたの選択のターゲットディレクトリで~/Desktopを置き換える

PRODUCT="${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app" 
cp -R "${PRODUCT}" ~/Desktop 

スクリプト:

答えて

1

"ビルドフェーズ"でスクリプトを使用するソリューションは、スクリプトの実行時にXcodeがアプリケーションのビルドを完了していないため、正常に動作しません。ここでは、すべてのタスクが完了しているビルドした後に実行するスクリプトを持つソリューションです:

  1. Goが
  2. 「を構築する」の横にある三角形の「編集スキーム」
  3. クリックし
  4. を「ポスト・アクション」を選択します
  5. 押し+ボタンと「新しいスクリプトを実行オプション」
  6. を選択し、以下のシェルスクリプトを追加
  7. 「からビルド設定を提供します」でアプリ名を選択:

スクリプト:製品をアーカイブするときにXcodeのは依然として重要なビルド手順は、例えば、*は、スクリプトを実行した後に*ないため

PRODUCT="${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app" 
cp -R "${PRODUCT}" ~/Desktop 

Edit Schemes

2

は、製品をコピーするビルドフェーズにシェルスクリプトを追加します。

+1

残念ながら、これは正しく動作しません。ストリッピングとコードネゴシエーションはスクリプトの実行後*に実行されるので、新しい場所にコピーされたアプリバンドルは削除されずに正しくコード化されます。他のアイデア? – Andreas

+0

アーカイブ時に、ipaをエクスポートするパスを選択できます。アーカイブ中の実際の問題は何ですか? – shallowThought

関連する問題