Phonegap Android с TestFlight SDK, сеансы не отслеживаются

У меня есть Android-приложение Phonegap 3.0 с интегрированным TestFlight SDK.

Веб-сайт TestFlight распознал, что в мое приложение встроен SDK (зеленая галочка отображается в столбце SDK в строке версии сборки).
Тем не менее, веб-сайт TestFlight не показывает сеансы пользователей, когда приложение используется.

Вот как я это реализовал:

В документации указано, что я должен использовать этот код

public class MyApplication extends Application {
  @Override
  public void onCreate() {
    super.onCreate();
    //Initialize TestFlight with your app token.
    TestFlight.takeOff(this, YOUR_APP_TOKEN);
    ...
  }
}

В Phonegap класс фактически расширяет DroidGap (который не является приложением). Так что я должен был сделать вместо этого

TestFlight.takeOff(this.getApplication(), TEST_FLIGHT_APP_TOKEN);

Кроме того, в нем говорится, что AndroidManifest.xml должен иметь

<application ... android:name="MyApplication">  

Когда я добавляю это (указывая на мой основной класс (тот, который расширяет DroidGap), я получаю исключение, когда приложение загружает java.lang.ClassCastException приведение из моего основного класса в android.app.Application

Похоже, должен быть основной класс, расширяющий Application, но я не могу его найти.


person Ron Harlev    schedule 22.08.2013    source источник


Ответы (1)


Вы должны настроить отдельный класс Java в своем проекте, который расширяет Application, и вызывать takeOff в onCreate.

     public class MyApplication extends Application { 

              @Override 
                 public void onCreate() { 
                     TestFlight.takeOff(this, YOUR_APP_TOKEN);
                     super.onCreate(); 
                 } 

     } 

Вы не должны помещать имя своей деятельности (которая расширяет DroidGap) в тег приложения манифеста, так как это вызовет исключение ClassCastException. Вместо этого используйте имя класса, расширяющего приложение, в этом примере «MyApplication».

person swerv1    schedule 23.08.2013
comment
Следуя этим инструкциям, вы смогли один раз показать один сеанс на сайте TestFlight!. Больше не регистрируются сеансы с того же устройства или других устройств с такой же или более поздней сборкой. При отладке я вижу, что в журнале написано, что взлет TestFlight завершен. Версия: 1.0 Есть идеи? - person Ron Harlev; 27.08.2013
comment
Также сайт TestFlight подтверждает, что в сборке есть SDK. - person Ron Harlev; 27.08.2013
comment
Подписали ли вы свою сборку сертификатом отладки или сертификатом выпуска? Вам нужно подписать отладку, чтобы данные сеанса отображались в TestFlight. Также убедитесь, что вы тестируете именно ту сборку, которая была загружена в TestFlight. - person swerv1; 30.08.2013
comment
Также вы можете запустить эту команду, чтобы проверить, какой сертификат использовался для подписи сборки: jarsigner -verify -verbose -certs app_file.apk - person swerv1; 30.08.2013