2012-11-27 79 views
1

我正在编写一个自动化测试,它将使用Instruments automator在我的应用程序上运行一系列UX测试。问题是,我需要应用程序在我正在运行的特定测试集上进行全新安装。有没有办法通过命令行删除模拟器中的应用程序?通过命令行在模拟器上删除应用程序

具体来说,我期待这样的事情:

xcodeBuild -delete myApp.app 

回答

0

其实,我结束了使用在这里找到了解决办法:https://stackoverflow.com/a/5128616/608739

苹果脚本的伟大工程,并得到各地所有那些讨厌的模拟器的问题。

---------------旧帖子-------------------

使用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版本关联的所有应用程序。可以进一步细化,只删除您感兴趣的特定应用程序。

2

像这样的事情可能会奏效,虽然我还没有完全测试过它:

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

替代正确的模拟器版本号当然是6.0。

0

假设您知道iOS版本和应用程序的名称,这是一个脚本,我放在一起删除一个应用程序。如果您不想重置整个模拟器并丢失所有其他已安装的应用程序,它就派上用场了。

以下脚本是我使用的较大脚本的一部分,但应如图所示工作。我这有保存为simulator-uninstall.sh,你可以使用类似然后卸载应用:

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

这里的脚本(注意,是bash不是我的强项,但这个工作对我来说!) :

#!/bin/bash 

for p in "[email protected]"; 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 

希望有帮助!

相关问题