标题几乎全部说。我所拥有的是短期服务器进程,它提供基于Web的javascript测试套件,并可选择附带后端进行集成测试(请参阅here了解它是如何完成的)。我正在寻找一种更好的方法来将iPhone模拟器的Safari引导到给定的URL。
更多,可能是可选背景:
直到iOS SDK 4.0我已经设法使用AppleScript控制XCode以这种方式启动一个专门准备的PhoneGap项目:
在iOS 4.0 SDK中,这仅适用于第一轮,下次测试套件运行程序尝试使XC执行上述例程时,它无法请求停止上一次运行。而且我不能为我的生活找到一种方法来停止与AS [1]的调试会话,所以我只能运行一个测试套件而无需人工干预,因为我们非常依赖,所以对我们来说几乎是一个显示器在夜间试运行。
现在,我真正想要做的只是启动iPhone模拟器,然后在模拟器上启动Safari,可以向模拟的Safari发送任意URL。
到目前为止我发现的是iphonesim,但我遇到了this问题而无法正常启动预编译应用。在iphonesim
中绕过这个问题的方法也是一个好方法。
[1]我也接受这样做的方法作为一个有效的答案。
答案 0 :(得分:1)
我有一个非常不同的解决方案。
编写一个仅包含Web视图的自定义iPhone应用程序。它的行为与MobileSafari几乎相同。然后,在应用程序中嵌入一个小型Web服务器。
然后,您可以通过调用该服务器上的特定网址来控制您的应用。
这是一款非常简单的应用。你需要30分钟才能完成。
这很容易集成到Xcode或更大的(Apple)脚本中。您可以使用curl之类的命令打开URL。
答案 1 :(得分:1)
现在可以:
xcrun simctl openurl booted "https://google.com"
答案 2 :(得分:0)
发布脚本:最终是如何解决的。
在我提出这个问题后不久,github的用户在issue 3中添加了一条评论,iphonesim
正常工作所需要的是提供绝对路径到应用程序开始。现在我们有一个预建的PhoneGap项目,其中脚本修改www
内build/Debug-iphonesimulator/PhoneGap.app
目录的内容。然后将此目录的绝对路径发送到iphonesim
,启动现在指向正确服务器的项目。没有AppleScript,也没有XCode(初始构建除外)。测试套件现在需要花费1/7的时间来运行。