1

Instruments automator を使用してアプリケーションで一連の UX テストを実行する自動テストを作成しています。問題は、実行している特定のテスト セットの新規インストールでアプリを実行する必要があることです。コマンドラインからシミュレーターでアプリを削除する方法はありますか?

具体的には、次のようなものを探しています。

xcodeBuild -delete myApp.app
4

3 に答える 3

2

完全にテストしていませんが、次のようなものが機能する可能性があります。

rm -rf ~/Library/Application\ Support/iPhone\ Simulator/6.0/Applications/*

もちろん、6.0 を適切なシミュレーターのバージョン番号に置き換えてください。

于 2012-11-27T18:22:50.073 に答える
0

私は実際にここにあるソリューションを使用することになりました: https://stackoverflow.com/a/5128616/608739

Apple スクリプトはうまく機能し、これらの厄介なシミュレーターの問題をすべて回避します。

--------------- 古い投稿 -------------------

jpancoast のリードを使用して、彼のスクリプトを修正し、シミュレーターでアプリの最新バージョンを見つけてクリアしました。

CURRENT_SDK=""
if [ -z "$RUN_ON_SPECIFIC_DEVICE_OPTION" ] ; then
    CURRENT_SDK=$(xcodebuild -showsdks | grep 'iphoneos[0-9].[0-9]' | grep -o '[0-9].[0-9]' | head -n1)
else
    CURRENT_SDK=$(xcodebuild -showsdks | grep 'iphonesimulator[0-9].[0-9]' | grep -o '[0-9].[0-9]' | head -n1)
fi
rm -rf ~/Library/Application\ Support/iPhone\ Simulator/"$CURRENT_SDK"/Applications/*

スクリプトは、現在デバイスで実行されているかどうかを確認します。次に、最新の SDK に対応するフォルダーを見つけ (プロジェクトがその SDK でビルドされていると仮定)、その SDK バージョンに関連付けられているすべてのアプリケーションを削除します。関心のある特定のアプリのみを削除するように、さらに調整を行うことができます。

于 2012-11-27T20:50:30.537 に答える
0

iOS のバージョンとアプリの名前を知っていると仮定すると、これは 1 つのアプリを削除するためにまとめたスクリプトです。シミュレーター全体をリセットして、インストールされている他のすべてのアプリを失いたくない場合に便利です。

以下のスクリプトは、私が使用するより大きなスクリプトの一部ですが、示されているように機能するはずです。これを simulator-uninstall.sh として保存しました。次のような方法でアプリをアンインストールできます。

./simulator-uninstall.sh ios=7.1 app="My App"

スクリプトは次のとおりです (注: bash は私の得意分野ではありませんが、これでうまくいきました!):

#!/bin/bash

for p in "$@"; do
    # Parse out each param which needs to be of the form key=value
    # Then remove any quotes around the value, because we will quote all vars anyway
    IFS="=" read argkey argvalue <<< "$p"
    argvalue="${argvalue%\"}"
    argvalue="${argvalue#\"}"
    case $argkey in
        ios)    IOS_VERSION=$argvalue
        ;;
        app)    APP_NAME=$argvalue
        ;;
    esac
done

SIMULATOR_ROOT="$HOME/Library/Application Support/iPhone Simulator/$IOS_VERSION"

# Find the *.app directory
APP_PATH=`find "$SIMULATOR_ROOT/Applications" -name "$APP_NAME.app"`

if [ "$APP_PATH" ]; then
    # Ensure simulator isn't running whilst we remove the app
    killall "iPhone Simulator"

    # Get the parent directory - this will be a UUID, then remove it
    APP_DIR=`dirname "$APP_PATH"`
    rm -rf "$APP_DIR"

    echo "Removed $APP_DIR"
else
    echo "App $APP_NAME not found for platform version $IOS_VERSION"
fi

それが役立つことを願っています!

于 2014-09-01T21:04:23.137 に答える