0

У меня возникло несколько проблем с запуском моих Xamarin UItests на стороне iOS общего приложения. Тестирование не вызывает проблем на Android, но я получаю System.Exception, когда я пытаюсь запустить их на iOS.Проблема с перекрестной платформой UITests на Xamarin.iOS

SetUp: System.Exception: этот комплект приложений недействителен для работы на симуляторе. Чтобы устранить эту проблему, пожалуйста, убедитесь, что целевое устройство является simulator.To запустить против установленного приложения на физическом устройстве вы можете useInstalledApp («ie.eoin.myapp»)

Я пытаюсь запустить тесты на симулятор, а также на реальном устройстве с тем же исключением. Ниже приведена трассировка стека.

Xamarin.UITest.iOS.iOSAppLauncher.LaunchAppLocal(Xamarin.UITest.Configurati`enter code here`on.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Http.HttpClient httpClient, System.Boolean clearAppData) [0x0008a] in <b034e37336b84a95a2482a0c5f0be621>:0 
    at Xamarin.UITest.iOS.iOSAppLauncher.LaunchApp (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Http.HttpClient httpClient, Xamarin.UITest.TestCloud.TestCloudiOSAppConfiguration testCloudAppConfiguration, Xamarin.UITest.Shared.Http.HttpClient testCloudWsClient, Xamarin.UITest.Shared.Http.HttpClient xtcServicesClient, System.Boolean testCloudUseDeviceAgent) [0x0007a] in <b034e37336b84a95a2482a0c5f0be621>:0 
    at Xamarin.UITest.iOS.iOSApp..ctor (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration) [0x00302] in <b034e37336b84a95a2482a0c5f0be621>:0 
    at Xamarin.UITest.Configuration.iOSAppConfigurator.StartApp (Xamarin.UITest.Configuration.AppDataMode appDataMode) [0x00017] in <b034e37336b84a95a2482a0c5f0be621>:0 
    at Shared.UITest.AppInitializer.StartApp() [0x00036] in /Users/eoinahern/Documents/xamarin_projs/HomeApp.Mobile/Shared/Shared.UITests/AppInitializer.cs:23 
    at Shared.UITest.Common.SetUp() [0x00002] in /Users/eoinahern/Documents/xamarin_projs/HomeApp.Mobile/Shared/Shared.UITests/Common.cs:17 
    at Shared.UITests.MapScreensTests.SetUp() [0x00002] in /Users/eoinahern/Documents/xamarin_projs/HomeApp.Mobile/Shared/Shared.UITests/MapScreens/MapScreensTests.cs:16 
    at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) 
    at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /private/tmp/source-mono-4.6.0/bockbuild-mono-4.6.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/corlib/System.Reflection/MonoMethod.cs:305 

В моем startApp() методе в AppInitializer классе, путь указывает на правильный .app файл в каталоге бен.

public static IApp StartApp() 
     { 
      switch (TestEnvironment.Platform) 
      { 
       case TestPlatform.Local: 
#if __IOS__ 
        platform = Platform.iOS; 
        return ConfigureApp 
            .iOS 
            .AppBundle(GetLocalIOSTestAppPath())          .StartApp(Xamarin.UITest.Configuration.AppDataMode.Clear) as IApp; 
#endif 

} 

Я не уверен, почему тесты не будут работать. Я попытался перейти на реальное устройство. Кроме того, файл .app имеет то, что похоже на символ из знака остановки в качестве значка. Не уверен, что это значит. Я проверю, что это значит, но пока я в тупике. Любая помощь приветствуется. серьезно застрял здесь.

ответ

0

Вы решили эту проблему? точно так же, как предположение: возможно, вам нужно использовать .ipa-файл вместо .app

+0

Возможно, вы на правильном пути, но у вас есть его в обратном порядке: «Этот пакет приложений не подходит для работы на симуляторе». Файл .ipa построен для устройства, а файл .app создан для симулятора, а не наоборот. –