我的iOS应用需要一些特权(GPS,推送通知).当应用程序第一次启动时,iOS会询问用户是否可以将这些权限授予应用程序.我写过一些UITests,想要在本地连接的iPhone上自动运行它们.
问题是我无法覆盖权限问题,我的测试失败了.我发现IDE(Xamarin Studio)部署的应用程序将要求权限,但是通过UITests部署的应用程序不会.所以我试过.AppBundle(path_to_app)但它说这只适用于部署到模拟器.
SetUp:System.Exception:此应用程序包无法在模拟器上运行.要解决此问题,请确保您的目标设备是模拟器.DTPlatformName是应用程序Info.plist中的'iphoneos',而不是'iphonesimulator'.
就像它试图将iPhone应用程序部署到模拟器一样.但Xamarin Studio中的Target设置为真实设备.我试着补充一下.DeviceIdentifier.与.InstalledApp它一起使用时启动(仍然要求权限).但是当我使用时DeviceIdentifier,AppBundle出现了与上面相同的错误.
我的测试在Test Cloud上运行良好.它们在模拟器上工作正常.当我手动部署到设备,启动应用程序并批准权限然后运行UI测试时,它们工作正常.
我无法实现的是让UITests覆盖真实设备上的权限问题.有人做过这个吗?
最后一件事是我找到的AppBundle方法文档"将强制在模拟器上运行"
https://developer.xamarin.com/api/member/Xamarin.UITest.Configuration.iOSAppConfigurator.AppBundle/p/System.String/
所以我可能注定要完成任务,但也许有人知道解决方法?