Questa pagina offre suggerimenti e risoluzione dei problemi per i problemi specifici di Unity che potresti riscontrare durante l'utilizzo di Firebase.
Hai altre difficoltà o non trovi il tuo problema di seguito? Assicurati di consultare le domande frequenti principali di Firebase per ulteriori domande frequenti su Firebase o specifiche per i prodotti.
Un problema con il singolo dex durante la creazione dell'app per Android
Durante la creazione di un'app per Android, potresti riscontrare un errore di build relativo alla presenza di un singolo file dex. Se il tuo progetto è configurato per utilizzare il sistema di build Gradle, il messaggio di errore è simile al seguente.
Cannot fit requested classes in a single dex file.
I file Dalvik Executable (.dex) vengono utilizzati per contenere un insieme di definizioni di classi e i relativi dati aggiuntivi associati per le app per Android (.apk). Un singolo file dex è limitato al riferimento a 65.536 metodi. La build non andrà a buon fine se il numero totale di metodi di tutte le librerie Android nel progetto supera questo limite.
Unity ha introdotto la minimizzazione nella versione 2017.2, che utilizza Proguard (o altri strumenti in alcune versioni di Unity) per rimuovere il codice inutilizzato, il che può ridurre il numero totale di metodi di riferimento in un singolo file dex. L'opzione si trova in Player Settings > Android > Publishing Settings > Minify (Impostazioni del player > Android > Impostazioni di pubblicazione > Minimizza). Le opzioni potrebbero variare in base alla versione di Unity, quindi consulta la documentazione ufficiale di Unity.
Se il numero di metodi di riferimento supera ancora il limite, un'altra opzione è
attivare multidex. Esistono diversi modi per farlo in Unity:
- Se l'opzione
Custom Gradle TemplateinPlayer Settingsè attiva, modificamainTemplate.gradle. - Se utilizzi Android Studio per creare il progetto esportato, modifica il file
build.gradlea livello di modulo.
Maggiori dettagli sono disponibili nella guida dell'utente di multidex.
Problemi durante la creazione per Android con minSdkVersion 23
Quando crei per Android, se scegli come target minSdkVersion 23, la build potrebbe non riuscire durante il passaggio di dexing, in genere nell'attività Gradle ":launcher:mergeExtDexDebug", dove verrà visualizzato il messaggio "Impossibile trasformare" una delle librerie Android. Questo problema è causato da un bug nello strumento dex predefinito nell'SDK Android utilizzato dalla maggior parte degli editor Unity e può essere risolto in diversi modi:
- Imposta
minSdkVersionsu 24. - Attiva la minimizzazione di Android in Impostazioni player > Android > Impostazioni di pubblicazione > Minimizza
- Specifica una versione diversa dello strumento dex aggiungendo quanto segue al file
settingsTemplate.gradle:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
Problemi durante la creazione per iOS con CocoaPods
Durante la creazione per iOS, l'installazione di CocoaPods potrebbe non riuscire con un errore relativo alle impostazioni internazionali della lingua o alla codifica UTF-8. Al momento esistono diversi modi per aggirare il problema.
Dal terminale, esegui direttamente
pod installe apri il file xcworkspace risultante.Esegui il downgrade della versione di CocoaPods alla 1.10.2. Il problema esiste solo nella versione 1.11 e successive.
Nel tuo
~/.bash_profileo equivalente, aggiungiexport LANG=en_US.UTF-8
Come aggiornare la versione degli SDK Firebase Unity
La procedura per aggiornare le versioni degli SDK Firebase Unity dipende da come sono stati importati inizialmente. Ecco i due metodi di importazione alternativi:
- Importazione dei file
.unitypackagenella directoryAssets/del progetto - Importazione tramite
Unity Package Manager
(UPM)
- Questo è il modo consigliato per gestire i pacchetti in Unity 2018.4 e versioni successive.
- Utilizza questo metodo per semplificare i futuri aggiornamenti della versione e rendere più pulita la directory
Assets/.
Nel tuo progetto Unity, devi utilizzare un solo metodo di importazione per gestire tutti i pacchetti Firebase. Le istruzioni riportate di seguito possono essere utilizzate non solo per aggiornare la versione dei singoli pacchetti, ma anche, se necessario, per eseguire la migrazione della gestione dei pacchetti a UPM (il metodo di importazione consigliato).