上下文:使用Xcode的UIAutomation和模拟器6.1和5.1运行自动脚本 Xcode版本是4.6.1
问题:当从终端运行shell脚本时,即使我已将应用程序路径设置为5.1,UIAutomation也会打开6.1。
我已经尝试在5.1上构建和运行,如果我从Instruments运行测试,我可以选择5.1的目标并且它工作正常。问题出在我从命令行运行时。
我检查了iphonesimulator.plist,当前SDKRoot指向5.1路径,但是一旦shell脚本运行,它就会变为6.1。无论如何我可以强迫它使用5.1?
经过几个小时的搜索(包括最合适的一个 - Launch a specific Hardware version of iOS simulator using instruments command line utility),似乎没有解决方案。
有一种方法可以使用默认设置来设置设备com.apple.iphonesimulator \“SimulateDevice”'“iPad”' 我需要像默认的那样写com.apple.iphonesimulator \“Version”'“5.1”' 虽然显然不起作用。
任何指针都将非常感激。谢谢!
编辑:我希望这可以通过XCode 5来解决,但我仍然有同样的问题,iOS7模拟器总是打开!顺便问一下,有没有办法绕过这个问题 - 我确信有很多人在运行多个模拟器版本。答案 0 :(得分:1)
这不是很优雅,但是我们已经能够开始自动化设置工作了:
从App Store安装Xcode 5
安装Xcode 4.6.3或从开发人员门户网站的“旧版Xcode页面”
重复使用旧版本的Xcode,其中max sim版本==您想要运行的版本
使用“sudo xcode-select -switch /path/to/Xcode.app ”来选择Xcode的版本
希望有所帮助!
答案 1 :(得分:1)
步骤1 =我创建了一个使用6.1 sdk版本构建ios应用程序的作业。
第2步=我使用bash脚本创建第二个作业,该脚本位于第一个作业的下游,执行以下操作:
cd'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs /'
echo [ENTER ADMIN PASSWORD HERE] | sudo -S mv iPhoneSimulator7.0.sdk / $ {HOME} / Desktop
echo [ENTER ADMIN PASSWORD HERE] | sudo -S mv iPhoneSimulator6.1.sdk / iPhoneSimulator7.0.sdk /
第3步=我创建第3个执行测试的作业。我第二份工作下游的第三份工作。
步骤4 =我创建了第3个工作下游的第4个工作。第四个作业使用bash脚本执行以下操作:
cd'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs /'
echo [ENTER ADMIN PASSWORD HERE] | sudo -S mv iPhoneSimulator7.0.sdk / iPhoneSimulator6.1.sdk /
cd $ {HOME} /桌面
echo [ENTER ADMIN PASSWORD HERE] | sudo -S mv iPhoneSimulator7.0.sdk /'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs /'
ps ax | grep [b] ash | awk'{print $ 1}'| xargs kill -9
ps ax | grep [i] nstruments | awk'{print $ 1}'| xargs kill -9
我可能需要让这个过程更加万无一失,但我认为它比在自动化机器上拥有多个xcode实例更好。