XcodeがBuildのたびにリソースを自動的に更新していることを確認します.


Xcodeを使ったことがあるのはすべて知っていて、Xcodeは1つのとても嫌なバグがあって、时にはリソースを更新した后に、本物のデバッグはリソースがまだ古いことを発见して、この时はCleanの后で再びBuildするしかありません.しかし、これは非常に時間を浪費しており、特に大きな工事では、一度にコンパイルするのに数分かかります.この時、プログラマーは不定と言ってmokoを走ります.ccはぶらぶらしてました...
生産性を向上させるためには、Xcode Buildのときにリソースを強制的に更新するスクリプトが必要です.

ディレクトリ構造の決定


まず下図を見て、Xcodeプロジェクトの青いフォルダは、その中のファイルが直接ホストにコピーされ、ディレクトリ構造を維持していることを示しています.だからdata,img,snd.iosディレクトリにはどんな内容があり、本体にもどんな内容がありますか.
Xcodeは、実機のデバッグ時に、まずBuildを行い、生成する.appファイル(実際にはディレクトリですが、Finderにはファイルが表示されています)には、実行可能なファイルとすべてのリソースが含まれています.そしてXcodeはappは実機に転送する、最後に実機で起動する.app.私たちのスクリプトはBuildの時に生成されたことを確認します.appには常に最新のリソースが含まれています.
ここでは、元のリソースファイルが存在するパスと、2つのパスを知る必要があります.appのリソースファイルが存在するパス.
最初のパスは、Xcodeプロジェクトファイルとリソースファイルの相対的な位置に基づいて決定する必要があります.
下図に示すように、プロジェクトのprojにエンジニアリングファイルがあります.iosディレクトリで、リソースファイルはプロジェクトのresディレクトリにあります.最初のパスは、プロジェクトファイルが存在するパス/./res/
Xcodeには多くの環境変数が用意されているため、「プロジェクトファイルが存在するパス」と「.appのリソースファイルが存在するパス」は簡単に決定できます.スクリプトで直接参照すればいいです.

スクリプトの追加


XcodeではBuildでスクリプトコードを指定できますので、Xcodeのプロジェクトを修正し、スクリプトの内容を追加します.
操作手順:
  • まずXcodeでプロジェクトを選択し、右側にプロジェクトの設定画面が表示されます.
  • 設定画面からBuild Phasesラベルを選択し、右下のAdd Build Phasesボタンをクリックして「Add Run Script」を選択します.
  • 新しく出現したRun Script欄に以下の内容を入力:
  • _TARGET_BUILD_CONTENTS_PATH=$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH
    echo _TARGET_BUILD_CONTENTS_PATH: $_TARGET_BUILD_CONTENTS_PATH
    echo PWD: $PWD
    
    echo Cleaning $_TARGET_BUILD_CONTENTS_PATH/
    
    rm -fr $_TARGET_BUILD_CONTENTS_PATH/data/*
    rm -fr $_TARGET_BUILD_CONTENTS_PATH/img/*
    rm -fr $_TARGET_BUILD_CONTENTS_PATH/snd.ios/*
    
    mkdir -p $_TARGET_BUILD_CONTENTS_PATH/data/
    mkdir -p $_TARGET_BUILD_CONTENTS_PATH/img/
    mkdir -p $_TARGET_BUILD_CONTENTS_PATH/snd.ios/
    
    cp -RLp $PWD/../res/data/* $_TARGET_BUILD_CONTENTS_PATH/data/
    cp -RLp $PWD/../res/img/* $_TARGET_BUILD_CONTENTS_PATH/img/
    cp -RLp $PWD/../res/snd.ios/* $_TARGET_BUILD_CONTENTS_PATH/snd.ios/
  • 重要:Run Scriptバーをドラッグして、リストの2番目の位置(つまりTarget Dependencesの後ろ)に移動します.最後に下図のように
  • 注意事項

  • スクリプトの内容は、プロジェクトのディレクトリ構造、リソースディレクトリ構造に基づいて調整する必要があります.
  • たまにネイティブでデバッグすると、Xcodeはリソースファイルが変更されたことを報告します.このときXcodeを終了して再開すれば良いので、再コンパイルよりもずっと速いです.

  • - END -
    変換元:http://cn.quick-x.com/?p=22