2019.3.0f6
7.18.0
๋ฐ 7.18.1
[Android]
๋ฒ์ any
ํ๋ก์ ํธ ๊ตฌ์ถ
ํ๋ก์ ํธ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค.
ํ๋ก์ ํธ๊ฐ ๋ค์ ์ถ๋ ฅ์ผ๋ก ๋น๋๋์ง ์์ต๋๋ค.
CommandInvokationFailure: Gradle build failed.
/Applications/Unity/Hub/Editor/2019.3.0f6/PlaybackEngines/AndroidPlayer/OpenJDK/bin/java -classpath "/Applications/Unity/Hub/Editor/2019.3.0f6/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-6.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"
stderr[
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':launcher:checkReleaseDuplicateClasses'.
> 1 exception was raised by workers:
java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
Go to the documentation to learn how to Fix dependency resolution errors.
๋๋
Facebook SDK๋ก๋ง ๋น๋ํ๋ฉด ์๋ํฉ๋๋ค.
Firebase SDK๋ง์ผ๋ก ๋น๋ํ๋ฉด ์๋ํฉ๋๋ค.
Facebook SDK์ Firebase SDK๋ก ๋น๋ํ๋ฉด ์คํจํฉ๋๋ค.
์์ ์ธ๊ธ ํ ๋จ๊ณ์ ๋ฐ๋ผ Repro ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์์ต๋๋ค.
https://drive.google.com/file/d/1ngzavtEftODND1EpRyNchq3qClpyXl0C/view?usp=sharing
์๋ ํ์ธ์ @KylinChang , ์ด๊ฒ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
Unity 2019.3์์ ํ๋ก์ ํธ๋ฅผ ๋น๋ ํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ก ์ธํด Android์์, # 359๋ก ์ธํด iOS์์.
์๋ ํ์ธ์ @mcrvaz ,
Facebook SDK v7.18.1์์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
Facebook SDK v7.18.1์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ง๊ธ์ ๊ฒ์์ ๋น๋ ํ ์ ์์ต๋๋ค. Firebase ๋๋ Facebook ์์ ๋นํ์ฑํ.
@kashiftasneempro ๋จผ์ ์ด์ ํ๋ฌ๊ทธ์ธ์ ์ญ์ ํ์ต๋๊น?
@kashiftasneempro ๋จผ์ ์ด์ ํ๋ฌ๊ทธ์ธ์ ์ญ์ ํ์ต๋๊น?
์ ๋๋ ํ์ด.
๋๋ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์๋๋ฐ, ๋๊ตฌ๋ ์ง ์ด๊ฒ์ ๋ํด ์ง์ ์ด ์์ต๋๊น? androidx ๋ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถฉ๋์ฒ๋ผ ๋ณด์ ๋๊น?
์ฌ์ค : ์์ง ์์ ํ ํ ์คํธํ์ง๋ ์์์ง๋ง
implementation(name: 'com.android.support.support-compat-27.0.2', ext:'aar')
build.gradle์์ APK๋ฅผ ๋ค์ ๋น๋ํฉ๋๋ค. ๊ทธ๋๋ ๊ณ ์ฅ๋ ๊ฒ์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด ํ ์คํธ๋ฅผ ์ํ ํ ๊ฒ์ ๋๋ค.
์ ๋ฐ์ดํธ 1 : ์ผ์ด ๋ด ์ชฝ์์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. Facebook์ ์ฌ์ ํ โโ์๋ํ๋ฉฐ Firebase ํธ์ ํ ํฐ ์ด๊ธฐํ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐ๊ณ ์์ต๋๋ค.
์
๋ฐ์ดํธ 2 : Firebase AndroidManifest ํ์ผ์์ uses-sdk ์ธ ์ค์ ์ ๊ฑฐํด์ผํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค ... 14
์ด ๋ ์ค์ ์ ๊ฑฐํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. ๋ด ์ฌ์ฉ ์ฌ๋ก์ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ์ ํ
์คํธ ํ ์์์์ต๋๋ค. ๋ฐ๋ผ๊ฑด๋ ์ด๊ฒ์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฌ์ค : ์์ง ์์ ํ ํ ์คํธํ์ง๋ ์์์ง๋ง
implementation(name: 'com.android.support.support-compat-27.0.2', ext:'aar')
build.gradle์์ APK๋ฅผ ๋ค์ ๋น๋ํฉ๋๋ค. ๊ทธ๋๋ ๊ณ ์ฅ๋ ๊ฒ์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด ํ ์คํธ๋ฅผ ์ํ ํ ๊ฒ์ ๋๋ค.
์ ๋ฐ์ดํธ 1 : ์ผ์ด ๋ด ์ชฝ์์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. Facebook์ ์ฌ์ ํ โโ์๋ํ๋ฉฐ Firebase ํธ์ ํ ํฐ ์ด๊ธฐํ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐ๊ณ ์์ต๋๋ค.
์ ๋ฐ์ดํธ 2 : Firebase AndroidManifest ํ์ผ์์ uses-sdk ์ธ ์ค์ ์ ๊ฑฐํด์ผํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค ... 14
์ด ๋ ์ค์ ์ ๊ฑฐํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. ๋ด ์ฌ์ฉ ์ฌ๋ก์ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ์ ํ ์คํธ ํ ์์์์ต๋๋ค. ๋ฐ๋ผ๊ฑด๋ ์ด๊ฒ์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
Unity์์ ์์ ํ๊ณ ์์ต๋๊น?
Unity์๋ build.gradle์ด ์๋ mainTemplate.gradle์ด ์์ต๋๋ค.
์, Unity์ ๋๋ค. ํธ์ง๊ธฐ์์ apk / aab๋ฅผ ๋น๋ํ๋ ๋์ Android Studio๋ก ๋ด ๋ณด๋ด์ ์ข ์์ฑ์ ํตํด ์์ ํ ์ ์์ต๋๋ค. ์ด์ ๊ฐ์ ๊ฒ์ ๋๋ฒ๊น ํ ๋ ๋ง์ ๋์์ด๋ฉ๋๋ค.
์๋ ํ์ธ์ @ncinoadam , ์ด๋ค Firebase ๋ชจ๋์ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ํธ์ ์๋ฆผ?
@ncinoadam @kashiftasneempro Jetifier ๋ฅผ ํ์ฑํํ๊ณ mainTemplate.gradle ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
dependencies {
implementation 'androidx.multidex:multidex:2.0.0'
implementation fileTree(dir: 'libs', include: ['*.jar'])
// Android Resolver Dependencies Start
implementation 'androidx.appcompat:appcompat:1.0.0'
// Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
implementation 'androidx.cardview:cardview:1.0.0'
// Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
implementation 'androidx.cardview:cardview:1.0.0'
// Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
implementation 'androidx.browser:browser:1.0.0'
// Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
// Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:6
...
์๋ ํ์ธ์ @ncinoadam , ์ด๋ค Firebase ๋ชจ๋์ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ํธ์ ์๋ฆผ?
๋๋ ํ์ฌ ๋ฉ์์ง ๋ชจ๋์ ์ฌ์ฉํ๊ณ ์์ง๋ง ์ถฉ๋์ ํ์ ํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด ์์ ํ๋ ๊ฒ๋ ์ด๋ ต์ง ์์ ๊ฒ์ ๋๋ค.
์ด ๋ฌธ์ ๋ ํ๋ก์ ํธ๋ฅผ ๋ด๋ณด๋ด๊ณ Android Studio๋ก ๋น๋ ํ ๋ค์ @hex๊ฐ ์ธ๊ธ ํ ๊ฑฐ์ ์ค๋๋ ์ข ์์ฑ์ ๋์ฒดํ์ฌ AndroidX๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ์์๋๋ ๋ฐฉ์์ด ์๋๊ธฐ ๋๋ฌธ์ Force Resolve ์ดํ AndroidX๊ฐ ํ์ฑํ๋์ด์๋ ๋์์๋ ์ฌ์ ํ ์ค๋๋ ์ข ์์ฑ์ ์ฌ์ฉํ๋ ํจํค์ง์์ ์ถฉ๋์ด ๋ฐ์ํ๋ฏ๋ก ํ๋ก์ ํธ ๋ด๋ณด๋ด๊ธฐ์์ด ๋น๋ ํ ์์๋ ์์ ๋๋ ๊ณต์์ ์ธ ๋ฐฉ๋ฒ์ด ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฌ์ค : ์์ง ์์ ํ ํ ์คํธํ์ง๋ ์์์ง๋ง
implementation(name: 'com.android.support.support-compat-27.0.2', ext:'aar')
build.gradle์์ APK๋ฅผ ๋ค์ ๋น๋ํฉ๋๋ค. ๊ทธ๋๋ ๊ณ ์ฅ๋ ๊ฒ์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด ํ ์คํธ๋ฅผ ์ํ ํ ๊ฒ์ ๋๋ค.
์ ๋ฐ์ดํธ 1 : ์ผ์ด ๋ด ์ชฝ์์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. Facebook์ ์ฌ์ ํ โโ์๋ํ๋ฉฐ Firebase ํธ์ ํ ํฐ ์ด๊ธฐํ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐ๊ณ ์์ต๋๋ค.
์ ๋ฐ์ดํธ 2 : Firebase AndroidManifest ํ์ผ์์ uses-sdk ์ธ ์ค์ ์ ๊ฑฐํด์ผํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค ... 14
์ด ๋ ์ค์ ์ ๊ฑฐํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. ๋ด ์ฌ์ฉ ์ฌ๋ก์ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ์ ํ ์คํธ ํ ์์์์ต๋๋ค. ๋ฐ๋ผ๊ฑด๋ ์ด๊ฒ์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ฐ์ฌํฉ๋๋ค @ncinoadam , ์ด๊ฒ์ ๋ถ์ ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ ์๊ฒ
@GunLengend ๋์ํฉ๋๋ค. Android Studio์์ ํ์ผ์ ์๋ง์ผ๋ก ๋ง๋๋ ํดํน์ด๋ฉฐ ๋น๋๋ฅผ ์ํ ๋๋ง๋ค ๋ด๋ณด๋ผ ํ์์์ด Unity ๋ด์์ ์ฒ๋ฆฌํด์ผํฉ๋๋ค.
ํธ์ง : ๋ํ์ด ๋ฌธ์ ๋ ๋ด ํ๋ก์ ํธ์ ์๊ธฐ ๋๋ฌธ์ Facebook SDK์ ๊ด๋ จ์ด ์๋ค๋ ๊ฒ์ ์ธ๊ธํ๊ณ ์ถ์ต๋๋ค. ๊ฑฐ์ ๋์ผํ Unity ๋ก๊ทธ ์ถ๋ ฅ์ด ์๊ณ @ncinoadam์ด ์ธ๊ธ ํ ๋ฌธ์ ๋ฅผ ์์ ํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ ๋ฌธ์ ๋ฅผ ์ด์์ต๋๋ค (https://github.com/firebase/quickstart-unity/issues/607). Firebase์
์ง๊ธ ๊ณ ๋ คํ๊ณ ์๋ ๊ฒ์ Facebook๊ณผ Firebase ๋ฌธ์ ์ผ๋ฟ๋ง ์๋๋ผ Unity ์์ฒด์ ์ํ ์๋ ์์ต๋๋ค. enableJetifier ๋ฐ useAndroidX๋ Unity mainTemplate.gradle ํ์ผ์์ ํ์ฑํ๋์์ง๋ง Unity๊ฐ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์์ํ ๋ Jetifier๋ ์์ ์ ์ํํ์ง ์์ผ๋ฉฐ AndroidX๋ฅผ ๊ฐ์ ๋ก ์ฌ์ฉํ๋๋ก ์ด์ ์ข ์์ฑ์ ๋ชจ๋ ๋ง์ด๊ทธ๋ ์ด์ ํด์ผํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ๊ทธ ํธ๋ฆญ์ ํ ์ ์์ต๋๋ค.
์ง๊ธ ๊ณ ๋ คํ๊ณ ์๋ ๊ฒ์ Facebook๊ณผ Firebase ๋ฌธ์ ์ผ๋ฟ๋ง ์๋๋ผ Unity ์์ฒด์ ์ํ ์๋ ์์ต๋๋ค. enableJetifier ๋ฐ useAndroidX๋ Unity mainTemplate.gradle ํ์ผ์์ ํ์ฑํ๋์์ง๋ง Unity๊ฐ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์์ํ ๋ Jetifier๋ ์์ ์ ์ํํ์ง ์์ผ๋ฉฐ AndroidX๋ฅผ ๊ฐ์ ๋ก ์ฌ์ฉํ๋๋ก ์ด์ ์ข ์์ฑ์ ๋ชจ๋ ๋ง์ด๊ทธ๋ ์ด์ ํด์ผํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ๊ทธ ํธ๋ฆญ์ ํ ์ ์์ต๋๋ค.
์ต์ ๋ฒ์ ์ Unity, Facebook SDK, Firebase SDK๋ก ์ ๊ทธ๋ ์ด๋ ํ ํ ๋ชจ๋ Android ๋น๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ์ด์ Xcode์์ iOS์ ์ธ์ฐ๊ณ ์์ง๋ง์ด SDK์๋ ๊ด๋ จ์ด ์์ต๋๋ค.
ํธ์ง : ์ด์ ์ Firebase Analytics๋ฅผ ํ์ฑํํ์ง๋ง ์ง๊ธ์ ํ์ฑํํ์ง ์์๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค. ์ฒ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ Facebook SDK๋ฅผ ์ฌ์ฉํ์ง ์์์ผ๋ฉฐ Mapbox SDK์ ๋ฌธ์ ์์ผ๋ฉฐ Android ํด๊ฒฐ ํ๋ก๊ทธ๋จ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๋์ Java ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ๋ฐฐํฌํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ Mapbox๋ฅผ ์ ๊ฑฐํ๊ณ Google์ง๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ์ต๋๋ค. ๊ฑฐ๊ธฐ์์ ์์ฃผ ์ข์์ง ๋ง, ๋ด ์์ฐ ์ค ํ๋์ ๋ฌธ์๊ฐ ์ด์ ๋ฒ์ ์ ์์ฒญํ๊ณ ๋์ ํ ๋ ์ฌ๋ฌ ์ค๋ณต ํด๋์ค๊ฐ ์์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ฒ์ ์ Facebook SDK๋ฅผ ๋์ ํ์ต๋๋ค. ๊ทธ๋์ ์๋ก์ด Facebook SDK๋ฅผ ์ป์๊ณ ์ด์ ๋ฒ์ ์ด ํ์ํ ์์ฐ์ ์ฝ๋๋ฅผ ์กฐ์ ํด์ผํ์ต๋๋ค. ํ์ฌ Firebase ์ธ์ฆ์ด ์๋ํ์ง๋ง ์ฌ์ ํ androidx.core.core-1.0.0์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ๋๋ถ๋ถ์ ์ค๋ณต ํด๋์ค๊ฐ ์ ์๊ฒ ์๋ ๊ณณ์ ๋๋ค. ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
AdMob์ด์๋ ํ๋ก์ ํธ์ FB๋ฅผ ์ถ๊ฐ ํ ๋ ๋์ผํ ์ถฉ๋์ด ๋ฐ์ํฉ๋๋ค.
์์ฑ application @ appComponentFactory value = (android.support.v4.app.CoreComponentFactory) from [com.android. support : support-compat : 28.0.0] AndroidManifest. xml : 22 : 18-91
์ ์ ์ถ๊ฐ ํ
tools:replace="android:appComponentFactory" android:appComponentFactory="whateverString"
๋๋ ์ป๊ณ ์๋ค
java.lang.RuntimeException : ๋ชจ๋ classes.jar (androidx.browser : browser : 1.0.0) ๋ฐ classes.jar (com.android.support:customtabs:28.0.0)์ ์ค๋ณต ํด๋์ค android.support.customtabs.ICustomTabsCallback์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ...
๋ชจ๋ SDK ๋ฐ Unity์ ์ต์ ๋ฒ์ ์ด ์์ต๋๋ค.
์ ๋์๊ฒ ์ซ์ด์๋ฅผ ์ฃผ ์ จ๋์ง, ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ์ ๊ทธ๋ ๊ฒํด์ ๋์์์ฃผ๊ณ ์ถ์์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง com.android๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. support : customtabs : 28.0.0, ์ผ๋ฐ์ ์ผ๋ก Assets / Plugins / Android /์ ์ ์ฅ๋์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋์ง ํ์ธํฉ๋๋ค.
๋ฌธ์ ๋ Assets / Plugins / Android / ํด๋์ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋์ mainTemplate.gradle
์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์
๋๋ค. (์ ์ฅ์ ๊ณต๊ฐ์ด ์ ํ๋จ).
๋ชจ๋ implementation 'com.android.support.XXXX'
์ ๊ฑฐํ์ง๋ง ์ฌ์ ํ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๊ทํ์ ์๋ฃจ์
์ด ๋๋ฅผ์ํ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ ๊ทํ๋ ๊ฑฐ์ ๋นํ์ต๋๋ค. ๊ด๋ฆฌ์๊ฐ ๊ทํ์ ๊ฐ์ ๊ฒ์๋ฌผ์ ์ฝ์ ๋ ๊ทธ๋ ๋ชจ๋ ๊ฒ์ด ์๋ฃ๋์๋ค๊ณ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์์ด ๋ฌธ์ ๋ฅผ ๋ซ์ ์ ์์ต๋๋ค.
๋๋ Export to Android Studio
๋๋ remove library
์ ๊ฐ์ ๋ง์ ํ๋ก์ ํธ์ ์๋ฃจ์
์ ์ง์ํ๊ณ ์์ต๋๋ค. ๋ด ํ๋ก์ ํธ์ ์กด์ฌํ์ง ์๋ ๊ฒ์ ์๋ฃจ์
์ด ์๋๋๋ค.
ํ์ด์ ๋ด์ค๋ฆฌ
์ง๊ธ ๊ณ ๋ คํ๊ณ ์๋ ๊ฒ์ Facebook๊ณผ Firebase ๋ฌธ์ ์ผ๋ฟ๋ง ์๋๋ผ Unity ์์ฒด์ ์ํ ์๋ ์์ต๋๋ค. enableJetifier ๋ฐ useAndroidX๋ Unity mainTemplate.gradle ํ์ผ์์ ํ์ฑํ๋์์ง๋ง Unity๊ฐ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์์ํ ๋ Jetifier๋ ์์ ์ ์ํํ์ง ์์ผ๋ฉฐ AndroidX๋ฅผ ๊ฐ์ ๋ก ์ฌ์ฉํ๋๋ก ์ด์ ์ข ์์ฑ์ ๋ชจ๋ ๋ง์ด๊ทธ๋ ์ด์ ํด์ผํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ๊ทธ ํธ๋ฆญ์ ํ ์ ์์ต๋๋ค.
๋ฌธ์ ๋ Google / Unity ๋ฌธ์ ์ด์ Facebook ๋ฌธ์ ์ ๋๋ค. Facebook์ ์์ํ๊ณ ๋จ์ํ AndroidX๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด SDK๋ฅผ ์ ๊ทธ๋ ์ด๋ํด์ผํ๋ฉฐ์ด ๋ฌธ์ ๋ ์ฌ๋ผ์ง๋๋ค. Google / Unity๋ Facebook๊ณผ ๊ฐ์ ํ์ฌ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋๊น์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Unity ๋ด์์ ์คํ๋๋ ์์ฒด ๋ฒ์ ์ Jetifier๋ฅผ ๊ฐ๋ฐํ์ง๋ง Unity์ Jetifier๋ Facebook SDK์์ ์๋ํ์ง ์์ต๋๋ค!
์ด ์ข๊ฒ๋ Android Studio์ Jetifier๋ ์ ์๋ํ๋ฉฐ, ์ด๋ ๋ง ๊ทธ๋๋ก Facebook SDK ๋ฐ AndroidX๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก Unity ๊ฒ์์ ์คํํ๋ ์ ์ผํ ์๋ฃจ์ ์ ๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์๊ณ V7.16์์ v7.19.2๋ก ์ ํํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
@LunarInteractiveArts 7.19.2๋ฅผ ์๋ํ์ง๋ง ์ฌํ๊ฒ๋ ์๋ํ์ง ์์์ต๋๋ค.
๊ทธ๋ฌ๋์ด ๋ฒ๊ทธ์ ๊ฒ์ ๋ ์๋ฃจ์
์ด ์์ต๋๋ค : https://github.com/googlesamples/unity-jar-resolver/issues/360 ์๋ํฉ๋๋ค!
@ doom-goober ๋๋ ์ด๊ฒ์ ์๋ํ์ง๋ง ์๋ํ์ง ์์ต๋๋ค.
์ฝ๋๋ Google ์ข
์์ฑ ํ์ธ์๊ฐ ์์ฑํ๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค.
OneSignal ๋์๋ง ์น์
์์ ์์ ์ฌํญ์ ์ฐพ์ ๊ฒ ๊ฐ์ต๋๋ค. ์์ ์ Unity ofc์
๋๋ค. https://documentation.onesignal.com/docs/troubleshooting-unity#section -android-x-compatibility
Unity 2019.3.11f1์ ๋ํด ๋ ๋จ๊ณ๋ก ํด๊ฒฐํ์ต๋๋ค.
Edit
-> Project Settings
-> Player
-> Publishing settings
-> Custom Properties Gradle Template
gradleTemplate.properties
์ด๋ํ์ฌ ๋ค์ ์ค์ ๋งจ ์์ ์ถ๊ฐํฉ๋๋ค.Unity 2019.2.21์์๋ ์๋์ ๊ฐ์ด jetfiier๋ฅผ ํ์ฑํํด๋ ์ค๋ณต ํด๋์ค ์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค.
([rootProject] + (rootProject.subprojects as List)). each {
ext {
it.setProperty ( "android.useAndroidX", true)
it.setProperty ( "android.enableJetifier", true)
}
}
@jackatfp @gromilQaaaa ์ ์๋ฃจ์
์ ์ฌ์ฉํด ๋ณด์
จ์ต๋๊น ? ๋ค์์ Unity์์ ๋น๋ ์์
์ ๋ค์ ํ ๋ฌธ์ ์น์
์ ๋ํ ์ง์ ๋งํฌ์
๋๋ค.
https://documentation.onesignal.com/docs/troubleshooting-unity#unity -20193- ๋๋ -newer
Assets / Plugins / Android / settingsTemplate.gradle์ด๋ผ๋ ํ์ผ์ ์ถ๊ฐํด์ผํ๋ ์น์ ์ ๋๋ค.
์ด ๋ฌธ์ ๋ ์ ๋ฅผ ๋์์ด ์ข์ ์์ผฐ๊ณ ์ ๋ Android Studio์์ ๋น๋ํ๋ ๊ฒ์ผ๋ก ๊ฒฐ์ฌํ์ต๋๋ค. ์ด ์๋ฃจ์ ๋ง์ด ์ ์๊ฒ ์ผ๊ด๋๊ฒ ์๋ํ์ต๋๋ค (์ด์ ์๋ฃจ์ ์ด ์๋ํ๋ค๊ณ ์๊ฐํ์ง๋ง ๋ค๋ฅธ ํ๋ฌ๊ทธ์ธ์ ํ๋ก์ ํธ์ ๋ค์ ์ถ๊ฐํ์ ๋ ์๋์ด ์ค๋จ๋์์ต๋๋ค.) ๊ทธ๋ฆฌ๊ณ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ดํด๊ฐ๋์์ต๋๋ค. gradle ์์คํ ์ ๋ถ๋ช ํ jetifier๋ฅผ Unity์ ํฌ์คํธ ํ๋ก์ธ์ ๋ฐ ์ค์ ์ด์ง๋ง gradle์ ์ฌ์ฉํ๋ Android Studio์์ ์๋ํ๊ธฐ ๋๋ฌธ์ jetifier๊ฐ ๋ถ๋ช ํ ์๋ํ์ต๋๋ค. ๋ฐ๋ผ์ gradle ๊ธฐ๋ฐ์ ์๋ฃจ์ ์ด ์๋ฏธ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด์จ๋ ๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์ผํ๊ณ ๋๋ ๊ทธ๊ฒ์ด ๋น์ ์๊ฒ ํจ๊ณผ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ํด๊ฒฐ์ฑ ์ ์ฐพ๋ ๊ฒ์ ๋๋ฌด ์ง์ฆ์ด ๋๊ณ ๊ธฐ๋ปค์ต๋๋ค. ์๋ํด์ฃผ์ธ์! ํ์ด์ ๋น๋๋ค.
์ด ๊ฒฝ์ฐ ์ ํธ๊ธฐ๋ฅผ ์ง์ด ๋ค์ง ์์๋ค๋ ๊ฒ์ด ๋ง์ง๋ง ๋ ์ด์ OneSignal ์๋ฃจ์ ์ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
์ต์ 2019.3 ๊ณต์ ๋ฒ์ (๋ด๋ 2019.3.12f1 atm)์ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ Gradle ํ
ํ๋ฆฟ ์์ ์ฌ์ฉ์ ์ง์ Gradle ์์ฑ ํ
ํ๋ฆฟ์ ์ฌ์ฉํ๊ณ ๋ค์์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
android.useAndroidX=true
android.enableJetifier=true
์๋ก ์์ฑ ๋ gradleTemplate.properties ํ์ผ์ ์ถ๊ฐํฉ๋๋ค.
๋๋ ๊ฒ์์๊ฐ ์ํ๋ ๋ชจ๋ SDK๋ก ๋น๋ํ๊ธฐ ์ํด Android ์คํ๋์ค๋ก ๋ด๋ณด๋ด๊ณ ์์ผ๋ฉฐ, ๊ทธ ์ดํ๋ก Android ๋น๋ ์ค๋ฅ์ ๋ถํ์ ํค์ณ๋ ๊ฐ๊ณ ์์ต๋๋ค. ์ฃผ๋์ด ๊ฐ๋ฐ์๋ก์ ๋ชจ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ์๊ฐํ์ง๋ง ์ด์ ๋ง์นจ๋ด Unity ๋ด์์ ๋น๋ ํ ์ ์์ต๋๋ค. Jetifier๋ Android ์คํ๋์ค๋ฅผ ์ ์ธํ๊ณ Facebook SDK์์ ์ ๋๋ก ์๋ํ์ง ์์์ผ๋ฏ๋ก AndroidX ๋ง์ด๊ทธ๋ ์ด์ ๋ ํ๋ฌ๊ทธ์ธ์ ์ถฉ๋ถํ ์ฌ์ฉํ๋ค๋ฉด ์ฝ๊ฐ์ ๋ณ๊ฒฝ์์ด Unity ๋ด์์ ๋น๋ํ๊ธฐ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค.
๋ํ ์ผ๋ฐ์ ์ผ๋ก Plugins / Android / AndroidManifest.xml์ ์์ฉ ํ๋ก๊ทธ๋จ ํ๊ทธ์ ํฌํจํ๋๋ก ๋ณ๊ฒฝํด์ผํฉ๋๋ค.
tools:replace="android:appComponentFactory" android:appComponentFactory="leavemealone"
๋งค๋ํ์คํธ ํ๊ทธ์ xmlns:tools="http://schemas.android.com/tools"
์, ์ด๊ฒ์ด ๋ชฉ์ ์ด ๋ฌด์์ธ์ง ํ์คํ์ง ์๊ธฐ ๋๋ฌธ์ ์์์ ๋ฌธ์์ด์ด์ง๋ง ๋งค๋ํ์คํธ ๋ณํฉ ๋น๋ ์ค๋ฅ๊ฐ ์๋ํ๊ณ ์์ ๋ฉ๋๋ค.
์ด์ Ironsource (๋ง์ ์ด๋ํฐ๊ฐ ํฌํจ๋จ), Facebook SDK, GameAnalytics, Adjust, Firebase ๋ฑ ๋ฌด์์ด๋ ๋น๋ ํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ Unity Jar Resolver๋ฅผ ๊ฐ์ ธ์ค๊ณ , ์ค์ ์ ํ์ธํ์ฌ ์๋ ํด๊ฒฐ์ ์ ๊ฑฐํ๊ณ , ๋น๋์ ํด๊ฒฐ์ ์ ๊ฑฐํ๊ณ , ํจ์น ๋ฉ์ธ ํ ํ๋ฆฟ์ ์ค์ ํ๊ณ , jetifier๋ฅผ true๋ก ์ค์ ํ๊ณ , ๊ฐ์ ๋ก ํด๊ฒฐํ๊ณ , ์ํ๋ ์ถ๊ฐ ์ข ์์ฑ / ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ณ , gradleproperties ํธ๋ฆญ์ ์ํํ๊ณ , Unity ๋ด์์ ๋น๋ํ๊ณ , ์๋ฃํฉ๋๋ค. .
@ doom-goober ์, ์ธ๊ธ ํ ์๋ฃจ์ ์ ํฌํจํ ๋ชจ๋ ๊ฒ์ ์๋ํ์ง๋ง ์ฌ์ ํ ์๋ํ์ง ์์ต๋๋ค.
@ doom-goober ์, ์ธ๊ธ ํ ์๋ฃจ์ ์ ํฌํจํ ๋ชจ๋ ๊ฒ์ ์๋ํ์ง๋ง ์ฌ์ ํ ์๋ํ์ง ์์ต๋๋ค.
@ruslanmamonov ์ต์ ์ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น?
์ด๊ฒ์ ๋์๊ฒ๋ ์ผ์ด๋๊ณ ์์ต๋๋ค. ์์ ๋ชจ๋ ์๋ฃจ์ ์ ์ฑ๊ณตํ์ง ๋ชปํ์ต๋๋ค. Facebook SDK๋ androidX์ ์ถฉ๋ํ๋ ์ค๋๋ ์ข ์์ฑ์ ์ฃผ์ ํ๊ณ ์์ผ๋ฉฐ EDM4U๋์ด๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์๋ ์ :
implementation 'com.android.support:appcompat-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
implementation 'com.android.support:cardview-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
implementation 'com.android.support:cardview-v7:26.0.2' // Assets/Packages/XXX.CustomerSupport/Helpshift/Editor/HelpshiftDependencies.xml:9
Facebook์ cardview๋ฅผ ์ถ๊ฐํ๊ณ ๋ค๋ฅธ ๋ก์ปฌ ํ๋ฌ๊ทธ์ธ๋ ์ถ๊ฐํ์ต๋๋ค. Jetifier๋ ์๋ฌด๊ฒ๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
OneSignal์์ ์ ์ํ ์์ ์ฌํญ๋์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํฉ๋๋ค.
์, ์ถฉ๋ํ๋ ๊ตฌํ์ ์ฃผ์
ํ์ง ์๋๋ก Facebook.Unity.Editor.dll์ ์ฌ์ฉ์ ์ง์ ๋ฒ์ ์ ๋ง๋๋ ๋ฐ ์์งํ์ต๋๋ค.
ํ์ง๋ง ์์ฐ, ํ์ด์ค ๋ถ SDK๋ฅผ ๋น๋ํ๋ ๊ฒ์ ์ฝ์ง ์์์ต๋๋ค ...ํ์ง๋ง ๊ฒฐ๊ตญ ํด๊ฒฐ๋์์ต๋๋ค. :)
๋์ผํ ๋ฌธ์ ๋ก ์ด๋ ค์์ ๊ฒช๊ณ ์์ง๋ง ์ค๋ณต ๋ ํด๋์ค๋ ๋ค๋ฆ ๋๋ค.
java.lang.RuntimeException: Duplicate class androidx.vectordrawable.graphics.drawable.Animatable2Compat found in modules classes.jar (:vectordrawable-animated-1.0.0:) and classes.jar (androidx.vectordrawable:vectordrawable-animated:1.1.0)
Facebook์ด์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ ์ค์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
jetifier ํธ๋ฆญ์ ์๋ํด ๋ณด์๊ณ vectordrawable ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ์ฌ ๋ ๊ฑฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ androidx ๋์ ๋ฌผ์ ํฌํจํ์ฌ mainTemplate.gradle์ ๋ง๋ค๋ ค๊ณ ์๋ํ์ง๋ง ์ฌ์ ํ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
mainTemplate.gradle์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
// Android Resolver Repos Start
([rootProject] + (rootProject.subprojects as List)).each {
ext {
it.setProperty("android.useAndroidX", true)
it.setProperty("android.enableJetifier", true)
}
}
([rootProject] + (rootProject.subprojects as List)).each { project ->
project.repositories {
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
maven {
url "https://maven.google.com"
}
maven {
url (unityProjectPath + "/Assets/GeneratedLocalRepo/Firebase/m2repository") // Assets/Firebase/Editor/AnalyticsDependencies.xml:18, Assets/Firebase/Editor/AppDependencies.xml:22, Assets/Firebase/Editor/AuthDependencies.xml:20, Assets/Firebase/Editor/MessagingDependencies.xml:20
}
mavenLocal()
jcenter()
mavenCentral()
}
}
// Android Resolver Repos End
apply plugin: 'com.android.library'
**APPLY_PLUGINS**
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
// Android Resolver Dependencies Start
//implementation 'com.android.support:appcompat-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
//implementation 'com.android.support:cardview-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
//implementation 'com.android.support:customtabs:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
//implementation 'com.android.support:support-v4:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
//implementation 'com.android.support:support-v4:27.1+' // Assets/Editor/VoxelBusters/NativePlugins/NPDependencies.xml:6
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.browser:browser:1.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.vectordrawable:vectordrawable-animated:1.0.0'
implementation 'com.facebook.android:facebook-applinks:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:6
implementation 'com.facebook.android:facebook-core:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:5
implementation 'com.facebook.android:facebook-gamingservices:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:9
implementation 'com.facebook.android:facebook-login:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:7
implementation 'com.facebook.android:facebook-share:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:8
implementation 'com.google.android.gms:play-services-base:17.4.0' // Assets/Firebase/Editor/AppDependencies.xml:17
implementation 'com.google.firebase:firebase-analytics:17.5.0' // Assets/Firebase/Editor/MessagingDependencies.xml:15
implementation 'com.google.firebase:firebase-analytics-unity:6.16.0' // Assets/Firebase/Editor/AnalyticsDependencies.xml:18
implementation 'com.google.firebase:firebase-app-unity:6.16.0' // Assets/Firebase/Editor/AppDependencies.xml:22
implementation 'com.google.firebase:firebase-auth:19.3.2' // Assets/Firebase/Editor/AuthDependencies.xml:13
implementation 'com.google.firebase:firebase-auth-unity:6.16.0' // Assets/Firebase/Editor/AuthDependencies.xml:20
implementation 'com.google.firebase:firebase-common:19.3.1' // Assets/Firebase/Editor/AppDependencies.xml:13
implementation 'com.google.firebase:firebase-messaging:20.2.4' // Assets/Firebase/Editor/MessagingDependencies.xml:13
implementation 'com.google.firebase:firebase-messaging-unity:6.16.0' // Assets/Firebase/Editor/MessagingDependencies.xml:20
implementation 'com.parse.bolts:bolts-android:1.4.0' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:4
// Android Resolver Dependencies End
**DEPS**}
// Android Resolver Exclusions Start
android {
packagingOptions {
exclude ('/lib/armeabi/*' + '*')
exclude ('/lib/mips/*' + '*')
exclude ('/lib/mips64/*' + '*')
exclude ('/lib/x86/*' + '*')
exclude ('/lib/x86_64/*' + '*')
}
}
// Android Resolver Exclusions End
android {
compileSdkVersion **APIVERSION**
buildToolsVersion '**BUILDTOOLS**'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
minSdkVersion **MINSDKVERSION**
targetSdkVersion **TARGETSDKVERSION**
ndk {
abiFilters **ABIFILTERS**
}
versionCode **VERSIONCODE**
versionName '**VERSIONNAME**'
consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD**
}
lintOptions {
abortOnError false
}
aaptOptions {
ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
}**PACKAGING_OPTIONS**
}**REPOSITORIES****SOURCE_BUILD_SETUP**
**EXTERNAL_SOURCES**
๋ฌด์์ ํ ์์๋ ๋ค๋ฅธ ์์ด๋์ด? ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด ํ๋ก์ ํธ์ facebook sdk๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ ์ฒ์๋ถํฐ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ต์ jar resolver, facebook sdk ๋ฐ firebase sdk๊ฐ ์์ต๋๋ค.
๋๋ ์ฌ์ ํ ์์์ ์ ์ํ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ (god bless gradle ์์ฑ) ๋ฌธ์ ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ๋ ๊ฒ์ Unity์ Android SDK ์ฌ์ฉ์ ์ค์งํ๊ณ ์ง์ ๋ค์ด๋ก๋ํ๊ณ ์ ํธํ๋ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝ ํ ๊ฒ์ ๋๋ค. ๋ชฉํ๋ฅผ ์ข ๋ ํํ๋กญ๊ฒ api 30์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค. ๊ทธ๋๋ ๋ง์ ์ํฅ์ ๋ฏธ์น์ง ์์์ผํฉ๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ EDM ์ค์ ์์ jetifier, mainTemplate ํจ์น๋ฅผ ์ฌ์ฉํ๊ณ ๋น๋ํ๊ธฐ ์ ์ ๊ฐ์ ํด๊ฒฐ์ ์ฌ์ฉํ๋๋กํ๋ ๊ฒ์ ๋๋ค (๋์ฒ๋ผ ์๋ ํด๊ฒฐ์ ์ํ์ง ์๋ ๊ฒฝ์ฐ). ํผ๋ธ๋ฆฌ์ฑ ์ค์ ์์ ์ฌ์ฉ์ ์ ์ gradle ์์ฑ, ๊ธฐ๋ณธ ํ ํ๋ฆฟ, ์ฌ์ฉ์ ์ ์ Android ๋งค๋ํ์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค (๋ ์ด์ ๊ธฐ๋ณธ ํ ํ๋ฆฟ ๋๋ Android ๋งค๋ํ์คํธ๋ฅผ ๊ฑด๋๋ฆฌ์ง ์์ต๋๋ค. edm ๋ฐ facebook ๋ฉ๋ด ํธ์ง ์ค์ ์ "regenerate android manifest"๋ก ์ฑ์์ง๊ฒํ์ต๋๋ค. ๋ชจ๋ ์์ ์ด ์๋ฃ๋๋ฉด ์ค๋ณต ํด๋์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ ๊ฑฐํด์ผ ํ ์ถ๊ฐ ํญ๋ชฉ์ด ํ๋ก์ ํธ์์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Adjust๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ค์น ๋ฆฌํผ๋ฌ๋ฅผ ํด๊ฒฐํ ์ ์์ผ๋ฉฐ ์ฌ์ ํ ํ๋ก์ ํธ ํ๋ฌ๊ทธ์ธ ํด๋์ ์ญ์ ํด์ผํ๋ ๋ค๋ฅธ ํญ๋ชฉ์ด์์ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ค, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ค์ ์ ์ฌ์ฉํ๋ฉด์ด ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๊ฐ๋จํ ์ ์ํ์ต๋๋ค.
์์ฝ : ์ฌ์ฉ์ ์ง์ Gradle ์์ฑ ํ ํ๋ฆฟ ๋ฐ ์ถ๊ฐ :
android.useAndroidX=true
android.enableJetifier=true
์ฌ์ฉ์ ์ ์ ๋ฉ์ธ ํ
ํ๋ฆฟ, EDM4U ํจ์น ์ ์ฉ, Jetifier ์ผ๊ธฐ, ๋น๋ ์ ๊ฐ์ ํด๊ฒฐ
Custom Main Manifest, Facebook Regenerate Manifest ๋ฉ๋ด์์ ์ค์ ํธ์ง, PATH์ ๊ฐ์ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ๊ฑฐ๋ facebook์ ์ฑ๊ฐ์ ์ผ์ด ์๋์ง ํ์ธํ์ญ์์ค.
์ ๋ ์ฌ๋ฌ๋ถ์ด ๋งค์ผํ๋ ๊ฒ์ฒ๋ผ ๋ฐฑ๋ง ๊ฐ์ sdk๋ก ๋น๋ ํ ์ ์๋ค๊ณ ์ฝ์ํฉ๋๋ค. ์ ๋์ด ๋ฌธ์ ๋ฅผ ๋๋ฌด ๋ง์ด ๊ฒช๊ณ ์ปค์คํ
gradle ์์ฑ์ด ๋์ฌ ๋๊น์ง Android Studio์ ์์ง ํ ๋ฌด์์ ์ฃผ๋์ด ๊ฒ์ ๊ฐ๋ฐ์ ์ผ๋ฟ์
๋๋ค.
์ข์, ๊ทธ๋์ ๋ง์นจ๋ด ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ฒกํฐ ๋๋ก์ด ๋ธ aar ํ์ผ์ด ํ์ผ์ ๋ ๋ค๋๋ ๊ฒ์ด ๋ฌธ์ ์ ์์ธ์ด์์ต๋๋ค. ์ด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ณต์ฌํ๋์ง ํ์คํ์ง ์์ง๋ง์ด ํ์ผ์ ์ ๊ฑฐํ๊ณ ๋ชจ๋ ์ค๋ฅ๊ฐ ์ฌ๋ผ์ก์ต๋๋ค. ์ด์จ๋ ํํธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค :)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Unity 2019.3.11f1์ ๋ํด ๋ ๋จ๊ณ๋ก ํด๊ฒฐํ์ต๋๋ค.
Edit
->Project Settings
->Player
->Publishing settings
->Custom Properties Gradle Template
gradleTemplate.properties
์ด๋ํ์ฌ ๋ค์ ์ค์ ๋งจ ์์ ์ถ๊ฐํฉ๋๋ค.```์์ฑ
android.useAndroidX = true
android.enableJetifier = true