Troubleshooting
Common issues and solutions for Sorolla SDK integration.
Quick Fixes
| Issue | Solution | Details |
|---|---|---|
| SDK not initializing | Check Assets/Resources/SorollaConfig.asset exists |
→ |
| Events not appearing | Verify SDK keys, wait 5-10 min | → |
| Ads not loading | Check SDK Key and Ad Unit IDs, wait 30 sec after init | → |
| Remote config returns defaults | Ensure values are published in console | → |
| Firebase errors | Verify config files match bundle ID | → |
| Build failing | Check Build Health in Configuration window | → |
| Runtime crash on Android | Open Palette > Configuration, check Build Health |
→ |
| iOS provisioning errors | Open Xcode, enable "Automatically manage signing" | → |
Build Health
The Configuration window includes a Build Health section that validates your SDK setup before building. It runs 6 technical checks:
| Check | What it validates |
|---|---|
| SDK Versions | Installed versions meet minimum requirements |
| Mode Consistency | Installed SDKs match current mode (Prototype/Full) |
| Scoped Registries | UPM registries are properly configured |
| Firebase Coherence | Firebase modules have FirebaseApp installed |
| Config Sync | SorollaConfig matches installed packages |
| Android Manifest | No orphaned SDK entries that cause crashes |
Note: SDK installation status is shown in the SDK Overview section above Build Health.
Auto-fix: The validator automatically fixes AndroidManifest issues when the window opens or before builds.
Pre-build validation: Errors block builds automatically via IPreprocessBuildWithReport.
SDK Initialization
"SorollaConfig not found"
Cause: Config asset missing from Resources folder.
Fix:
- Open
Sorolla > Configuration - Click "Create Config" if prompted
- Verify
Assets/Resources/SorollaConfig.assetexists
SDK not auto-initializing
Cause: SorollaBootstrapper not creating.
Fix:
- Check for compile errors in Console
- Verify
Sorollanamespace accessible - Ensure no other
[RuntimeInitializeOnLoadMethod]conflicts
Analytics
Events not appearing in GameAnalytics
- Verify Game Key and Secret Key are correct
- Check Unity Editor console for errors
- Events may take 5-10 minutes to appear in dashboard
- Ensure GA account has Admin access
Events not appearing in Firebase
- Verify
google-services.json(Android) orGoogleService-Info.plist(iOS) exists - Enable "Google Analytics" when creating Firebase project
- Firebase events have ~24 hour delay in console
Ads (AppLovin MAX)
Ads not loading
- Verify SDK Key in Configuration window
- Check Ad Unit IDs (Rewarded, Interstitial)
- Wait 30 seconds after init for first ad load
- Check device has internet connection
Low fill rate
- Enable mediation networks in MAX dashboard
- Add AdMob, Meta, Unity Ads for better fill
- Test on real device (not editor/simulator)
Ad revenue not tracking
- Verify Adjust App Token (Full mode)
- Check Adjust is initialized (Debug UI > Health)
- Revenue reports may take 24 hours
Remote Config
Always returns default values
Firebase:
- Verify parameters are published in Firebase Console
- Call
FetchRemoteConfig()before getting values - Check Firebase config files present
GameAnalytics:
- Configure A/B tests in GA dashboard
- Ensure user is in test group
Fetch always fails
- Check internet connection
- Verify Firebase project setup
- Check Console for initialization errors
iOS-Specific Issues
CocoaPods/Ruby Errors
Error: gem install activesupport fails, ruby/config.h not found
Cause: System Ruby (2.6) missing headers.
Fix:
# Install CocoaPods via Homebrew
brew install cocoapods
# Verify installation
pod --version
# In Unity: switch platform to Android, then back to iOS
# This forces environment reload
ATT Dialog Not Showing
- Verify iOS 14.5+ target
- Check
ContextScreenprefab in Resources - ATT only shows once per app install
- Use Debug UI to reset consent for testing
Missing Provisioning Profile
- Open Xcode project
- Select Unity-iPhone target
- Enable "Automatically manage signing"
- Select your Apple Developer Team
- Connect device and let Xcode register it
Facebook SDK Swift Errors
Error: TournamentUpdater has no member 'update'
Cause: Facebook iOS SDK 18.0.2 breaking changes.
Fix: Pin Facebook pods to exactly 18.0.1 (not ~> 18.0.1).
Firebase "GoogleService-Info.plist not found"
- Download from Firebase Console > Project Settings > iOS app
- Place in
Assets/folder - Bundle ID must match exactly
Android-Specific Issues
Build Health - AndroidManifest Errors
Error: ClassNotFoundException at runtime (e.g., com.facebook.FacebookContentProvider)
Cause: AndroidManifest.xml has entries for SDKs that are no longer installed.
How it happens: Switching modes (Prototype ↔ Full) can leave orphaned entries.
Fix:
- Open
Palette > Configurationwindow - Check the Build Health section
- If "Android Manifest" shows an error, it will be auto-fixed on next validation
- Or open
Palette > Configurationand click Refresh in Build Health
The Build Health validator automatically detects and removes orphaned manifest entries before builds.
Wrong Main Activity Class
Error: ClassNotFoundException: com.unity3d.player.UnityPlayerGameActivity (or UnityPlayerActivity) at launch.
Cause: The AndroidManifest.xml declares an activity class that doesn't match the project's Application Entry Point setting in Player Settings.
Background: androidApplicationEntry in ProjectSettings.asset is a bitmask:
1= Activity (legacyUnityPlayerActivity)2= GameActivity (UnityPlayerGameActivity) - Unity 6 default for new projects3= both
Unity only compiles the selected entry point class into the APK. If the manifest references the wrong one, the class won't exist at runtime.
Common triggers:
- Upgrading from Unity 2022 to Unity 6 (preserves
Activitysetting but manifest patchers may assumeGameActivity) - Third-party SDK manifest patchers using
#if UNITY_2023_1_OR_NEWERinstead of reading the actual PlayerSettings value
Fix:
- Check Player Settings > Android > Other Settings > Application Entry Point
- Ensure AndroidManifest.xml activity class matches:
- Activity:
com.unity3d.player.UnityPlayerActivity - GameActivity:
com.unity3d.player.UnityPlayerGameActivity
- Activity:
- If using
useCustomLauncherManifest, checkLauncherManifest.xmlmatches too - Run
Palette > Configuration- Build Health will detect and fix mismatches
LauncherManifest.xml Missing Activity (Unity 6)
Error: DeploymentOperationFailedException: No activity in the manifest with action MAIN and category LAUNCHER
Cause: When useCustomLauncherManifest is enabled in Player Settings, Unity uses LauncherManifest.xml for the launcher Gradle module. If this file lacks a launcher activity declaration, the app installs but cannot launch.
Background: Unity 6 uses a split Gradle module structure:
AndroidManifest.xml->unityLibrarymodule (library)LauncherManifest.xml->launchermodule
Unity generates android:enabled="false" on the non-selected activity in the library manifest. The launcher manifest must override this.
Fix: Ensure LauncherManifest.xml declares the correct activity with the launcher intent filter:
<activity android:name="com.unity3d.player.UnityPlayerGameActivity"
android:theme="@style/BaseUnityGameActivityTheme"
android:enabled="true"
android:exported="true"
tools:replace="android:enabled">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<meta-data android:name="android.app.lib_name" android:value="game" />
</activity>
Replace UnityPlayerGameActivity/BaseUnityGameActivityTheme with UnityPlayerActivity/UnityThemeSelector if using legacy Activity mode.
Note: Unity's deployment checker may still report this error even when the APK is correct, because it reads source manifests rather than the Gradle-merged result. If the build succeeds, try installing the APK manually via adb install.
R8/AGP Version Mismatch
Error: NoSuchMethodError: setBuildMetadataConsumer or similar R8 crash during dexing.
Cause: A pinned R8 version in baseProjectTemplate.gradle conflicts with the AGP version.
Background:
- Unity 2022 (AGP 7.4.2): Needs R8 8.1.56+ pin for Kotlin 2.0 metadata from libraries like AppLovin SDK 13.x and Firebase 23.x
- Unity 6 (AGP 8.10.0): Bundled R8 already handles Kotlin 2.0 - the pin must be REMOVED
Fix:
- Open
Assets/Plugins/Android/baseProjectTemplate.gradle - If upgrading TO Unity 6: remove the entire
buildscript { ... }block that pins R8 - If on Unity 2022 with Kotlin 2.0 libraries: add the R8 pin:
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools:r8:8.1.56"
}
}
Gradle/Java Error on First Import
Error: NoClassDefFoundError: org.codehaus.groovy.vmplugin.v7.Java7 or similar Gradle/Java stacktrace on first Android resolve.
Cause: EDM4U bundles Gradle 5.1.1 which only supports Java 8-12. Unity 6+ uses Java 17+ by default. On first import, EDM4U may auto-resolve before Palette configures it to use Unity's Gradle.
Fix: This is cosmetic - restart Unity and it resolves automatically. Palette configures EDM4U to use Unity's Gradle templates on every domain reload. If the error persists:
- Run
Palette > Run Setup (Force) - Or manually enable Gradle templates:
Assets > External Dependency Manager > Android Resolver > Settings-> check all "Patch ... Template" options
Gradle Version Mismatch
Error: Incompatible Gradle version
Fix:
- Export to Android Studio
- Update
gradle-wrapper.propertiesto Gradle 8.0+ - Build from Android Studio
Missing google-services.json
- Download from Firebase Console > Project Settings > Android app
- Place in
Assets/orAssets/Plugins/Android/ - Package name must match exactly
Firebase Issues
Android crash: "Default FirebaseApp failed to initialize"
Error: FirebaseApp: Default FirebaseApp failed to initialize because no default options were found. This usually means that com.google.gms:google-services was not applied to your gradle project.
Cause: Assets/Plugins/Android/FirebaseApp.androidlib/ is missing. This folder is auto-generated by Firebase's Editor scripts (Firebase.Editor.dll) from your google-services.json. It contains the processed Android resources that Firebase needs at runtime.
Common triggers:
- First import of Firebase packages (Editor scripts haven't run yet)
- Switching SDK reference from local symlink to UPM git URL
- Deleting the Library folder and reimporting
Fix:
- Ensure
google-services.jsonis inAssets/ - Trigger a domain reload (make a small C# edit, or
Edit > Preferences > Script Changes While Playing > Recompile After Finished Playing) - Check
Assets/Plugins/Android/forFirebaseApp.androidlib/- it should appear after reload - If still missing:
Assets > External Dependency Manager > Android Resolver > Force Resolve - Verify
FirebaseApp.androidlib/res/values/google-services.xmlexists and contains your Firebase project values
Also check: FirebaseCrashlytics.androidlib/ should appear alongside it if Crashlytics is installed.
"Firebase not initialized"
- Check config files present and matching bundle ID
- Verify internet connection on first launch
- Check Console for async init errors
Crashlytics not reporting
- Crashes report on next app launch
- Wait 5-10 minutes for dashboard update
- Verify Firebase config files are in Assets/
Crashes in development not showing
Crashlytics requires:
- Release build (not debug)
- App restart after crash
- Internet connection
Editor Issues
Configuration window not opening
- Menu:
Sorolla > Configuration - If missing, check for compile errors
- Try
Window > Package Manager > Sorolla SDK > Reimport
SDK detection failing
- Close Unity completely
- Delete
Library/folder - Reopen project
- Let packages reimport
Mode switch not working
- Confirm dialog appears
- Wait for package manager to finish
- Unity may need restart for scripting defines
Debug UI
Debug panel not appearing
- Import sample from Package Manager
- Add
DebugPanelManagerprefab to scene - Triple-tap (mobile) or BackQuote key (desktop)
- Check prefab is DontDestroyOnLoad
Health indicators red
- GA: Check Game Key/Secret Key
- MAX: Check SDK Key and Ad Unit IDs
- Adjust: Check App Token (Full mode only)
- Firebase: Check config files present
Getting Help
- Check GitHub Issues
- Review error messages in Unity Console
- Use Debug UI for on-device diagnostics
- File new issue with:
- Unity version
- SDK version
- Platform (iOS/Android)
- Full error message
- Steps to reproduce