在我的 Jenkins 机器上运行自动化测试时,我也遇到了这个问题,我做了以下操作来使用 6.1 版模拟器而不是 7.0 版模拟器测试我的应用程序:
使用詹金斯:
第 1 步 = 我创建了一个使用 6.1 sdk 版本构建我的 ios 应用程序的作业。
============================================
第 2 步 = 我使用第一个作业的下游 bash 脚本创建了第二个作业,该脚本执行以下操作:
[进入 Xcode 应用程序位置进入 iphone 模拟器 sdk 目录]
cd '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/'
[将'iPhoneSimulator7.0.sdk'目录移动到另一个位置(我选择了桌面)]
echo [在此处输入管理员密码] | sudo -S mv iPhoneSimulator7.0.sdk/${HOME}/Desktop
[将“iPhoneSimulator6.1.sdk”重命名为“iPhoneSimulator7.0.sdk”]
echo [在此处输入管理员密码] | sudo -S mv iPhoneSimulator6.1.sdk/ iPhoneSimulator7.0.sdk/
============================================
STEP 3 = 我创建了执行我的测试的第三个作业。我的第二份工作下游的第三份工作。
============================================
第 4 步 = 我创建了第 3 个作业下游的第 4 个作业。第 4 个作业使用 bash 脚本,该脚本执行以下操作:
[进入 Xcode 应用程序位置进入 iphone 模拟器 sdk 目录]
cd '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/'
[将“iPhoneSimulator7.0.sdk”重命名为“iPhoneSimulator6.1.sdk”]
echo [在此处输入管理员密码] | sudo -S mv iPhoneSimulator7.0.sdk/ iPhoneSimulator6.1.sdk/
[转到您移动“iPhoneSimulator7.0.sdk”的目录(在我的情况下,我将“iPhoneSimulator7.0.sdk”移动到桌面)]
cd ${HOME}/桌面
[将'iPhoneSimulator7.0.sdk'目录移回Xcode app sdk目录]
echo [在此处输入管理员密码] | 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 实例更好。