Как обойти капчу при автоматизированном тестировании iOS react native (+firebase) приложении

Проблема (Вопрос) заключается в том, что при авторизации приложения идет автоматический редирект на гуглКапчу (особенности авторизации пользователя в firebase).
Капча появляяєтся тольно на iOS версии приложения.
Может сталкивался кто с проблемой в такой же конфинурации?
Какой совет можно дать девам для создания QA билда в котором капча би не вспливала?
Детали на SO:

1 лайк

спасибо… как вариант… но такое использовать буду в последнюю очередь…
надеюсь существуєт какойто особий способ авторизации, имплементировав которий, дев сможет создать QA билд без капчи.

На моем проекте дев сделал параметр для логина.

Я логинюсь через пост запрос
При отправке пост запроса я добавляю параметр
register_nonce 5XQwcTvSFT
И соответственно капча игнорируется, я сохраняю куки сессии из респонса и дальше все открываю нужные мне страницы.

1 лайк

Спасибо… Но здесь немного не то
У нас UI test для нейтивной апликухи под ios. (Appium, ios, android)
Ваше решение подойдет для API или WEB тестирования но для нейтив UI mobile неочень
Или, возможно я неправильно вас понял?

для норм дева это 5 минут работы
if debug:
blah-blah-blah

спасибо) а можно поконкретнее?)

дайте код приложения джава\котлин
по свифту вряд ли помогу
но принцип одинаковый - капча вызывается методом
его можно обернуть в if
и выключить

как я уже писал, приложение написано на React-Native (код на JS и интерпретиреется на iOS используя XCode и Android используя AndroidStudio)
На андроид версии билда капчи нету… только при iOS.
Место где я встретил джава код - ето инициализация MainApplication для андроид билда:

   private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
       @Override
       public boolean getUseDeveloperSupport() {
           return BuildConfig.DEBUG;
       }

       @SuppressLint("MissingPermission")
       @Override
       protected List<ReactPackage> getPackages() {
           return Arrays.<ReactPackage>asList(
                   new MainReactPackage(),
                   new ReactVideoPackage(),
                   new LottiePackage(),
                   new RNFirebasePackage(),
                   // add/remove these packages as appropriate
                   new RNFirebaseAuthPackage(),
                   new RNFirebaseFirestorePackage(),
                   new RNFirebaseStoragePackage(),
                   new SplashScreenReactPackage(),
                   new RNDeviceInfo(),
                   new ImagePickerPackage(),
                   new VectorIconsPackage(),
                   new RCTMGLPackage()
           );
       }

       @Override
       protected String getJSMainModuleName() {
           return "index";
       }
   };

   @Override
   public ReactNativeHost getReactNativeHost() {
       return mReactNativeHost;
   }

   @Override
   public void onCreate() {
       super.onCreate();
       FirebaseApp.initializeApp(this);
       SoLoader.init(this, /* native exopackage */ false);
   }

Все остальное делается из react-native кода
Сам процес авторизации юзера использует google auth из библиотеки firebaseSDK
Приложение капчу специально нигде не вызывает.
Редирект на капчу идет автоматически при первом реквесте firebaseSDK

первая ссылка…
странно что РАЗРАБОТЧИК этого не знает или не хочет знать /ивестигейтить
тем более потом нужно это будет вырезать из продакшен кода перед сборкой скорее всего

1 лайк

Спасибо. Ето уже предлагал… думают)

1 лайк