web-dev-qa-db-ja.com

Xcode 5以降で派生データを削除してプロジェクトをクリーンアップする方法

ターミナルでスクリプトを実行して、派生データフォルダーの下のすべてのファイルを削除し、プロジェクトを確実にクリーンアップする手順はありますか?

時々、プロジェクトのアセットが私のシミュレーターやデバイスに常に更新されるとは限りません。それは主に試行錯誤であり、古いアセットがテストビルドに組み込まれたのを見つけたとき、恥ずかしいことは言うまでもなく、遅すぎます!

私はこの質問を見ましたが、少し時代遅れのようです: キャッシュを空にしてすべてのターゲットをクリーンにする方法Xcode 4

私もこの質問をチェックしましたが、どうしても必要がない場合は、オーガナイザーで時間を無駄にしたくありません。 Xcode6で「派生データを削除する」方法

私は他の投稿も見てきましたが、プロジェクトを確実にクリーンアップし、スクリプトで時間を節約するという問題を解決するものは何も見つかりませんでした。

15
norton9000

これは基本的に、2つまたは3つのステップのプロセスであり、キャッシュされたすべてのアセットのプロジェクトをクリーンアップします。

もちろん、誰かがこの手法を使用しても、プロジェクトが更新されたアセットを表示しない場合は、回答を追加してください!私が含まれていないステップを必要とする状況に誰かが遭遇した可能性は間違いありません。

  1. プロジェクトをきれいにする Shift-Cmd-K
  2. Bashプロファイルで定義されたシェルスクリプト(詳細は下記)を呼び出して、派生データを削除します
  3. シミュレーターまたはデバイスからアプリをアンインストールします。
  4. 特定のタイプのアセットについては、シミュレーターをリセットする必要がある場合もあります(iOSシミュレーターメニューの下)。

以下のシェルスクリプトを呼び出すには、関数名(この場合は「ddd」)をターミナルに入力します(bashプロファイルにあると仮定)。 bashプロファイルを保存したら、sourceコマンドを使用してターミナルを開いたままにしている場合は、ターミナルの環境を更新することを忘れないでください。
source ~/.bash_profile

ddd() {
    #Save the starting dir
    startingDir=$PWD

    #Go to the derivedData
    cd ~/Library/Developer/Xcode/DerivedData

    #Sometimes, 1 file remains, so loop until no files remain
    numRemainingFiles=1
    while [ $numRemainingFiles -gt 0 ]; do
        #Delete the files, recursively
        rm -rf *

        #Update file count
        numRemainingFiles=`ls | wc -l`
    done

    echo Done

    #Go back to starting dir
    cd $startingDir
}

それが幸せなコーディングに役立つことを願っています!

22
Sheamus