๊ธฐ์ :
๋ฑ๋ก๋ ๊ธฐ๊ธฐ์ ๊ฑฐ์ ์ ๋ฐ์ด OneSignal ๋์๋ณด๋์์ Google Play ์๋น์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค๋ฅ๋ฅผ ํ์ํฉ๋๋ค. ์ด์ ์ ๋ฐํ๋ #322, #525ํธ๋ฅผ ๋ชจ๋ ์ฐธ๊ณ ํ์ฌ ๋ชจ๋ ๋จ๊ณ๋ฅผ ์๋ํ์ง๋ง ์๋ก ๋ฑ๋ก๋ ๊ธฐ๊ธฐ์์ Google Play ์๋น์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค๋ฅ๊ฐ ํ์๋๊ณ ์๋ฆผ์ ๋ฐ์ ์ ์์ต๋๋ค.
์๋ก์ด ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ OneSignal์ ํตํฉํ๋ ค๊ณ ์๋ํ์ง๋ง ์ฌ์ ํ ๋์ผํ ์ค๋ฅ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค.
ํ๊ฒฝ
OneSignal ๋ฐ์ ๋ค์ดํฐ๋ธ SDK: 3.2.12
๋ฐ์ ๋ค์ดํฐ๋ธ: 0.57.8
ํด๊ฒฐํ๋ ค๊ณ ์๋ํ ๋จ๊ณ
ํ๋ก์ ํธ ๋น๋.gradle
`// ๋ชจ๋ ํ์ ํ๋ก์ ํธ/๋ชจ๋์ ๊ณตํต์ ์ธ ๊ตฌ์ฑ ์ต์ ์ ์ถ๊ฐํ ์ ์๋ ์ต์์ ๋น๋ ํ์ผ์ ๋๋ค.
๋น๋ ์คํฌ๋ฆฝํธ {
๋ด์ {
buildToolsVersion = "27.0.3"
์ต์ SDK ๋ฒ์ = 16
compileSdkVersion = 27
๋์ SDK ๋ฒ์ = 27
supportLibVersion = "27.1.1"
}
repositories {
๊ตฌ๊ธ()
์ ์ด์ผํฐ()
maven {// <-์ด
url ' https://maven.google.com/ ' // <-- ์ด๊ฒ์
์ด๋ฆ '๊ตฌ๊ธ' // <-- THIS
} // <-- ์ด๊ฒ์
}
์ข
์์ฑ {
ํด๋์ค ๊ฒฝ๋ก 'com.android.tools. ๋น๋:๊ทธ๋ผ๋ค :3.1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
๋ชจ๋ ํ๋ก์ ํธ {
repositories {
๋ฉ์ด๋ธ๋ก์ปฌ()
๊ตฌ๊ธ()
์ ์ด์ผํฐ()
๋ฉ์ด๋ธ {
// ๋ชจ๋ React Native(JS, Obj-C ์์ค, Android ๋ฐ์ด๋๋ฆฌ)๋ npm์์ ์ค์น๋ฉ๋๋ค.
URL "$rootDir/../node_modules/react-native/android"
}
maven {// <-์ด
url ' https://maven.google.com/ ' // <-- ์ด๊ฒ์
์ด๋ฆ '๊ตฌ๊ธ' // <-- THIS
} // <-- ์ด๊ฒ์
}
}
์์
๋ํผ(์ ํ: ๋ํผ) {
gradleVersion = '4.4'
distributionUrl = distributionUrl.replace("bin", "all")
}
`
์ฑ ๋น๋.gradle
`ํ๋ฌ๊ทธ์ธ ์ ์ฉ: "com.android.application"
com.android.build.OutputFile ๊ฐ์ ธ์ค๊ธฐ
๋น๋ ์คํฌ๋ฆฝํธ {
repositories {
maven { url ' https://plugins.gradle.org/m2/ ' } // Gradle ํ๋ฌ๊ทธ์ธ ํฌํธ
}
์ข
์์ฑ {
ํด๋์ค ๊ฒฝ๋ก 'gradle.plugin.com. onesignal:onesignal-gradle-plugin :[0.12.1, 0.99.99]'
}
}
ํ๋ฌ๊ทธ์ธ ์ ์ฉ: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
project.ext.react = [
ํญ๋ชฉ ํ์ผ: "index.js"
]
์ ์ฉ ์ถ์ฒ : "../../node_modules/react-native/react.gradle"
์ ์ฉ: "../../node_modules/react-native-code-push/android/codepush.gradle"
def enableSeparateBuildPerCPUArchitecture = true
def enableProguardInReleaseBuilds = ๊ฑฐ์ง
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
applicationId "com.pokewreck.poketimer"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 14
versionName "3.2.0"
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
์ข
์์ฑ {
ํ๋ก์ ํธ ์ปดํ์ผ(':react-native-add-calendar-event')
ํ๋ก์ ํธ ์ปดํ์ผ ( ': react-native-splash-screen')
ํ๋ก์ ํธ ์ปดํ์ผ(':react-native-billing')
์ปดํ์ผ ํ๋ก์ ํธ(':react-native-admob')
ํ๋ก์ ํธ ์ปดํ์ผ(':react-native-onesignal')
ํ๋ก์ ํธ ์ปดํ์ผ(':react-native-vector-icons')
ํ๋ก์ ํธ ์ปดํ์ผ(':๋ฐ์ ๋ค์ดํฐ๋ธ ์ ์ค์ฒ ์ฒ๋ฆฌ๊ธฐ')
ํ๋ก์ ํธ ์ปดํ์ผ(':react-native-code-push')
๊ตฌํ fileTree(๋๋ ํฐ๋ฆฌ: "libs", ํฌํจ: ["*.jar"])
๊ตฌํ "com.android. support : appcompat-v7 : $ {rootProject.ext.supportLibVersion}"
๊ตฌํ "com.facebook. react:react-native :+" // node_modules์์
}
// BUCK์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ ์ ์๋๋ก ํ ๋ฒ ์คํํฉ๋๋ค.
// BUCK๊ฐ ์ฌ์ฉํ ๋ชจ๋ ์ปดํ์ผ ์ข
์์ฑ์ libs ํด๋์ ๋ฃ์ต๋๋ค.
์์
copyDownloadableDepsToLibs(์ ํ: ๋ณต์ฌ) {
configuration.compile์์
'libs'๋ก
}
`
Google Play ์๋น์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค๋ฅ๋ OneSignal์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๊ฐ ์ค์ ํ๋ก์ธ์ค ์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐ๋์ง ์์์์ ์๋ฏธํฉ๋๋ค.
์ฌ์ฉ ์ค์ธ SDK์ ๋ํ ๋ชจ๋ฐ์ผ SDK ์ค์ ๋ฌธ์์์ ๋ชจ๋ ์ค์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ฃํ๋์ง ๋ค์ ํ์ธํ์ญ์์ค. https://documentation.onesignal.com/docs/mobile-sdk-setup
๋ํ ์ฑ์์ ์ต์ ๋ฒ์ ์ Android ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ์ธ์. ์ด์ ๋ฒ์ ์ ์ฌ์ฉ ์ค์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์ถ๊ฐ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ setLogLevel ๋ฉ์๋๋ฅผ ์ผ๊ณ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฅ์น์์ ์ ์ฒด ๋ก๊ทธ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.
Google Play ์๋น์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค๋ฅ๋ OneSignal์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๊ฐ ์ค์ ํ๋ก์ธ์ค ์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐ๋์ง ์์์์ ์๋ฏธํฉ๋๋ค.
์ฌ์ฉ ์ค์ธ SDK์ ๋ํ ๋ชจ๋ฐ์ผ SDK ์ค์ ๋ฌธ์์์ ๋ชจ๋ ์ค์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ฃํ๋์ง ๋ค์ ํ์ธํ์ญ์์ค. https://documentation.onesignal.com/docs/mobile-sdk-setup
๋ํ ์ฑ์์ ์ต์ ๋ฒ์ ์ Android ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ์ธ์. ์ด์ ๋ฒ์ ์ ์ฌ์ฉ ์ค์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์ถ๊ฐ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ setLogLevel ๋ฉ์๋๋ฅผ ์ผ๊ณ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฅ์น์์ ์ ์ฒด ๋ก๊ทธ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.
๋์๊ณผ ์ง์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. Firebase ํด๋ผ์ฐ๋ ์ค์ ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค!
๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
Google Play ์๋น์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค๋ฅ๋ OneSignal์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๊ฐ ์ค์ ํ๋ก์ธ์ค ์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐ๋์ง ์์์์ ์๋ฏธํฉ๋๋ค.
์ฌ์ฉ ์ค์ธ SDK์ ๋ํ ๋ชจ๋ฐ์ผ SDK ์ค์ ๋ฌธ์์์ ๋ชจ๋ ์ค์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ฃํ๋์ง ๋ค์ ํ์ธํ์ญ์์ค. https://documentation.onesignal.com/docs/mobile-sdk-setup
๋ํ ์ฑ์์ ์ต์ ๋ฒ์ ์ Android ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ์ธ์. ์ด์ ๋ฒ์ ์ ์ฌ์ฉ ์ค์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์ถ๊ฐ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ setLogLevel ๋ฉ์๋๋ฅผ ์ผ๊ณ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฅ์น์์ ์ ์ฒด ๋ก๊ทธ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.
๋๋ ๋ํ react native: 0.60.5 ๋ฐ react native onesignal: 3.3.2์์ ๋์ผํ ์ค๋ฅ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค. ๋๋ ๋ฌธ์์ ์ธ๊ธ๋ ๋ชจ๋ ๋จ๊ณ๋ฅผ ๋ฐ๋์ต๋๋ค. onesignal์ ํ์ํ Google Play ์๋น์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค๋ช ํ ์ ์์ต๋๊น?
์ฌ์ ํ 27์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ 28 @arfa123์ผ๋ก ์ ๊ทธ๋ ์ด๋ํด ๋ณด์ญ์์ค.
@sagarv1997 Firebase ํ๋ก์ ํธ์ ์ด๋ค ๋ฌธ์ ๊ฐ ์์๋์? ๋๋ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ผ๋ฉฐ ์ง๊ธ๊น์ง ํด๊ฒฐ์ฑ ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
๋๋ ์๊ณ ์ถ๋ค @sagarv1997
Google Play ์๋น์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค๋ฅ๋ OneSignal์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๊ฐ ์ค์ ํ๋ก์ธ์ค ์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐ๋์ง ์์์์ ์๋ฏธํฉ๋๋ค.
์ฌ์ฉ ์ค์ธ SDK์ ๋ํ ๋ชจ๋ฐ์ผ SDK ์ค์ ๋ฌธ์์์ ๋ชจ๋ ์ค์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ฃํ๋์ง ๋ค์ ํ์ธํ์ญ์์ค. https://documentation.onesignal.com/docs/mobile-sdk-setup
๋ํ ์ฑ์์ ์ต์ ๋ฒ์ ์ Android ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ์ธ์. ์ด์ ๋ฒ์ ์ ์ฌ์ฉ ์ค์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์ถ๊ฐ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ setLogLevel ๋ฉ์๋๋ฅผ ์ผ๊ณ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฅ์น์์ ์ ์ฒด ๋ก๊ทธ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.๋์๊ณผ ์ง์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. Firebase ํด๋ผ์ฐ๋ ์ค์ ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค!
๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
์ด๋ค ๋ณ๊ฒฝ์ผ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋์ง ์๋ ค์ฃผ์๊ฒ ์ต๋๊น? @sagarv1997
bro, ์๋ฃจ์
์ ๊ณต์ ํ ์ ์์ต๋๊น? @sagarv1997
๋ํ ํด๊ฒฐ์ฑ
์ ์ฐพ์์ต๋๊น? @renanmav @faridsaud @parthanjaria
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@sagarv1997 Firebase ํ๋ก์ ํธ์ ์ด๋ค ๋ฌธ์ ๊ฐ ์์๋์? ๋๋ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ผ๋ฉฐ ์ง๊ธ๊น์ง ํด๊ฒฐ์ฑ ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค.