Интеграция Fabric / Firebase в Unity

У меня возникают трудности с интеграцией Firebase и Fabric в мой Unity проект. В конце концов мне удалось заставить их работать вместе, установив плагин Firebase, а затем плагин Fabric (наоборот, никогда не работало). Проблема в том, что я вижу только события Firebase в своей консоли Firebase и не вижу событий Fabric / Answers (которые я вижу в Fabric, поэтому я знаю, что есть запущенные события).

Вопрос1: я использую Unity для создания своего APK, может ли это быть проблемой, и следует ли мне использовать Android Studio с gradle?

Вопрос 2: я пытался создать свое приложение в Android Studio с помощью gradle, но при запуске приложения получаю сообщение об ошибке:

Didn't find class "io.fabric.unity.android.FabricApplication" on path: DexPathList[[zip file "/data/app/com.domain.appname-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.domain.appname-1, /vendor/lib, /system/lib]]

Поскольку я новичок в Gradle, что является правильным Gradle для такого проекта (например, Unity с Firebase и Fabric)?

Для информации мой build.gradle выглядит так:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.google.gms:google-services:3.1.1'
    }
}

allprojects {
   repositories {
       maven { url 'https://maven.google.com' }
      flatDir {
        dirs 'libs'
      }
   }
}

apply plugin: 'com.android.application'

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.firebase:firebase-core:11.4.2'
    compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
        transitive = true
    }
}

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'

    defaultConfig {
        targetSdkVersion 25
        applicationId 'com.domain.appname'
    }

    lintOptions {
        abortOnError false
    }
    signingConfigs { release {
        storeFile file('xxxxx')
        storePassword 'xxxxxx'
        keyAlias 'xxxxxx'
        keyPassword 'xxxxxx'
    } }

    buildTypes {
        debug {
            jniDebuggable true
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
            signingConfig signingConfigs.release
        }
    }

}

apply plugin: 'com.google.gms.google-services'

ОБНОВЛЕНИЕ 1: Я прошел через процесс еще раз и теперь обнаружил ошибку в консоли Fabric под Tools->Firebase, говорящую, что мой Crashlytics SDK устарел. Crashlytics SDK не обновлен

Я переустановил последнюю версию подключаемого модуля Fabric / Crashlytics Unity из подключаемого модуля Fabric for Unity. В Unity он отображается как Crashlytics v1.2.5, что является последней версией, указанной в Fabric: Журнал изменений ткани

Вот когда мне интересно, смогу ли я, используя gradle, каким-то образом обновить свой Fabric SDK.


person Frank Servy    schedule 24.11.2017    source источник
comment
Вам должно быть хорошо, если Unity сгенерирует ваш apk. Вы связали свое приложение между Fabric и Firebase? docs.fabric.io/android/answers/android-export-firebase. html   -  person Alexizamerican    schedule 26.11.2017
comment
@Alexizamerican спасибо за вашу помощь. Мое приложение связано между Fabric и Firebase. Я добавил обновление к своему вопросу, поскольку снова прохожу этот процесс, теперь я вижу, что проблема может заключаться в том, что Crashlytics SDK не обновлен, что странно, поскольку у меня есть последний плагин единства для Fabric, который я смог найти.   -  person Frank Servy    schedule 27.11.2017
comment
Спасибо за дополнительные подробности. Я подтвердил команде, что мы еще не обновили наш Unity SDK для поддержки интеграции Fabric Answers to Firebase. Я работаю с командой над выпуском обновления, чтобы мы поддержали его. Следите за обновлениями, и я добавлю обновление, когда оно будет опубликовано.   -  person Alexizamerican    schedule 27.11.2017
comment
Спасибо за информацию. Ожидая обновления, мы будем благодарны за любые советы по gradle.   -  person Frank Servy    schedule 28.11.2017


Ответы (1)


Crashyalytics и Firebase Messaging изменяют ваш androidManifest.xml. К сожалению, вам нужно объединить изменения.

Надеюсь это поможет!

Firebase Messaging добавляет (по крайней мере)

<!-- The MessagingUnityPlayerActivity is a class that extends UnityPlayerActivity to work around a known issue when receiving notification data payloads in the background. --> <activity android:name="com.google.firebase.MessagingUnityPlayerActivity"

Ткань добавляет минимум: android:name="io.fabric.unity.android.FabricApplication"

Дэйвид

person user3290232    schedule 11.10.2018