いくつかの権限 (GPS、プッシュ通知) が必要な iOS アプリがあります。アプリが初めて起動すると、iOS はユーザーに、それらのアクセス許可をアプリケーションに付与してもよいかどうかを尋ねます。いくつかの UITests を作成しましたが、ローカルに接続された iPhone での実行を自動化したいと考えています。
問題は、アクセス許可の質問をオーバーライドできず、テストが失敗することです。IDE (Xamarin Studio) によって展開されたアプリケーションはアクセス許可を要求することがわかりましたが、UITests を介して展開されたアプリケーションは要求しません。だから私は試してみまし.AppBundle(path_to_app)
たが、これはシミュレーターへの展開にのみ有効であると言われています。
SetUp : System.Exception : このアプリ バンドルは、シミュレーターでの実行には有効ではありません。この問題を解決するには、ターゲット デバイスがシミュレータであることを確認してください。DTPlatformName は、アプリの Info.plist の「iphonesimulator」ではなく「iphoneos」です。
iPhoneアプリをSimulatorにデプロイしようとしているようです。ただし、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/
だから私はその仕事に運命づけられているかもしれませんが、おそらく誰かが回避策を知っていますか?