我的 iOS 应用程序需要一些权限(GPS、推送通知)。当应用程序第一次启动时,iOS 会询问用户是否可以将这些权限授予应用程序。我已经编写了一些 UITests 并希望在本地连接的 iPhone 上自动运行它们。
问题是我无法覆盖权限问题并且我的测试失败。我发现 IDE (Xamarin Studio) 部署的应用程序会请求权限,但通过 UITests 部署的应用程序不会。所以我尝试了,.AppBundle(path_to_app)
但它说这仅对部署到模拟器有效。
设置: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/
所以我可能注定要完成这项任务,但也许有人知道解决方法?