React-native-onesignal: (Android) E/onesignal: ν™œλ™μ΄ null true λ˜λŠ” oneSignalInitDonefalseμ΄λ―€λ‘œ OneSignal SDKλ₯Ό μ΄ˆκΈ°ν™”ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2018λ…„ 05μ›” 19일  Β·  30μ½”λ©˜νŠΈ  Β·  좜처: OneSignal/react-native-onesignal

μ—¬λ³΄μ„Έμš”!
"λ°˜μ‘ λ„€μ΄ν‹°λΈŒ": "0.55.3",
"react-native-onesignal": "^3.2.3",

μ•±.js

componentWillMount() {
    OneSignal.init('bddacd3f-7812-4a29-b038-.................');
    OneSignal.addEventListener('received', this.onReceived);
    OneSignal.addEventListener('opened', this.onOpened);
    OneSignal.addEventListener('ids', this.onIds);
}



onReceived(notification) {
        console.log("Notification received: ", notification);
    }

    onOpened(openResult) {
      console.log('Message: ', openResult.notification.payload.body);
      console.log('Data: ', openResult.notification.payload.additionalData);
      console.log('isActive: ', openResult.notification.isAppInFocus);
      console.log('openResult: ', openResult);
    }



    onIds(device) {
        console.log('Device info: ', device);
   }
  1. iOSμ—μ„œ μž‘μ—…

  2. μ•ˆλ“œλ‘œμ΄λ“œμ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

react-native-onesignal:3.1.4 μ‚¬μš©ν•˜μ—¬ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.

defaultConfig {
        applicationId "APP_ID"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }

        manifestPlaceholders = [onesignal_app_id: "YOUR_ONESIGNAL_ID",
                                onesignal_google_project_number: "REMOTE"]
    }

그리고 그게 λ‹€μ•Ό. react-native-navigation을 μ‚¬μš©ν•˜λŠ” 경우 JS μΈ‘μ—μ„œ μˆ˜ν–‰ν•˜λŠ” 것보닀 훨씬 κ°„λ‹¨ν•©λ‹ˆλ‹€.

λͺ¨λ“  30 λŒ“κΈ€

1

@aspidvip μ’€ 더 μžμ„Έν•œ 정보λ₯Ό μ œκ³΅ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? 이 였λ₯˜κ°€ μ˜ˆμ™Έλ₯Ό λ°œμƒμ‹œν‚€κ³  μΆ©λŒμ„ μΌμœΌν‚€λ‚˜μš”? μ•„λ‹ˆλ©΄ κ·Έλƒ₯ μž‘λ™ν•˜μ§€ μ•Šλ‚˜μš”(ν”Œλ ˆμ΄μ–΄ ID μ—†μŒ, ν‘Έμ‹œ μ•Œλ¦Ό μˆ˜μ‹  λΆˆκ°€ λ“±)? 증상은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

λ‚˜λ„μ΄ λ¬Έμ œκ°€ μžˆμ—ˆλ‹€. λ°˜μ‘ λ„€μ΄ν‹°λΈŒ 탐색 λ•Œλ¬Έμ΄λΌκ³  μƒκ°ν•©λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹œμž‘λœ 직후 λ‹€λ₯Έ ν™œλ™μ„ μ‹œμž‘ν•©λ‹ˆλ‹€. κ·Έ λ™μ•ˆ OneSignal.init() λ₯Ό ν˜ΈμΆœν•˜λ©΄ ν™œλ™μ΄ null이라고 ν‘œμ‹œλ©λ‹ˆλ‹€. 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

OneSignal.init() λ₯Ό ν˜ΈμΆœν•˜κΈ° 전에 λͺ‡ 초 λ™μ•ˆ 기닀리면 μž‘λ™ν•˜μ§€λ§Œ λ‹€λ₯Έ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. FirebaseApp이 μ΄ˆκΈ°ν™”λ˜μ§€ μ•Šμ€ μ•±μž…λ‹ˆλ‹€. 문제 #515. 이것에 λŒ€ν•œ μˆ˜μ •μ΄λ‚˜ ν•΄κ²° 방법도 κΈ°λŒ€ν•©λ‹ˆλ‹€...

react-native-onesignal:3.1.4 μ‚¬μš©ν•˜μ—¬ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.

defaultConfig {
        applicationId "APP_ID"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }

        manifestPlaceholders = [onesignal_app_id: "YOUR_ONESIGNAL_ID",
                                onesignal_google_project_number: "REMOTE"]
    }

그리고 그게 λ‹€μ•Ό. react-native-navigation을 μ‚¬μš©ν•˜λŠ” 경우 JS μΈ‘μ—μ„œ μˆ˜ν–‰ν•˜λŠ” 것보닀 훨씬 κ°„λ‹¨ν•©λ‹ˆλ‹€.

ν”Œλ ˆμ΄μ–΄ IDκ°€ μ—†μŠ΅λ‹ˆλ‹€. ν‘Έμ‹œ μ•Œλ¦Όμ„ 받을 수 μ—†μŠ΅λ‹ˆλ‹€!

@urbancvek λ™μΌν•œ μ΄ˆκΈ°ν™” 기술(iOS용 AppDelegate 및 Android용 gradle μ‚¬μš©)은 3.2.3μ—μ„œλ„ μž‘λ™ν•©λ‹ˆλ‹€.

@aspidvip 그것은 맀우 κ΄‘λ²”μœ„ν•œ 문제이며 무엇이든 될 수 μžˆμŠ΅λ‹ˆλ‹€. 이것은 react-native-navigation 및 OneSignal μ΄ˆκΈ°ν™” 타이밍과 κ΄€λ ¨λœ 문제일 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” ν–ˆλ‹€

componentDidMount(){
    setTimeout(()=>{
      OneSignal.init('bddacd3f-7812-4a29-b038-ebf844c9826d');
    },5000);
}

E/OneSignal: The included Android Support Library is to old or incomplete. Please update to the 26.0.0 revision or newer.
D/FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk"],nativeLibraryDirectories=[/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/lib/x86, /data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
I/zygote:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk"],nativeLibraryDirectories=[/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/lib/x86, /data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
I/zygote:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk"],nativeLibraryDirectories=[/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/lib/x86, /data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
I/zygote:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)

1

ν•˜μ§€λ§Œ ν”Œλ ˆμ΄μ–΄ IDκ°€ μ—†κ³  ν‘Έμ‹œ μ•Œλ¦Όμ„ 받을 수 μ—†μŠ΅λ‹ˆλ‹€!

@aspidvip build.gradle λ₯Ό κ²Œμ‹œν•  수 μžˆμŠ΅λ‹ˆκΉŒ? 이것은 ν™•μ‹€νžˆ μ˜μ‘΄μ„± λ¬Έμ œκ°€ 될 κ²ƒμž…λ‹ˆλ‹€.

λ˜ν•œ react-native-onesignal/build.gradle 파일둜 μ΄λ™ν•˜μ—¬ OneSignal android SDKλ₯Ό 3.9.1둜 μ—…λ°μ΄νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€.

plugins {
        id 'com.onesignal.androidsdk.onesignal-gradle-plugin' version '0.8.1'
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'


apply plugin: "com.android.application"
import com.android.build.OutputFile

/**
 * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
 * and bundleReleaseJsAndAssets).
 * These basically call `react-native bundle` with the correct arguments during the Android build
 * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
 * bundle directly from the development server. Below you can see all the possible configurations
 * and their defaults. If you decide to add a configuration block, make sure to add it before the
 * `apply from: "../../node_modules/react-native/react.gradle"` line.
 *
 * project.ext.react = [
 *   // the name of the generated asset file containing your JS bundle
 *   bundleAssetName: "index.android.bundle",
 *
 *   // the entry file for bundle generation
 *   entryFile: "index.android.js",
 *
 *   // whether to bundle JS and assets in debug mode
 *   bundleInDebug: false,
 *
 *   // whether to bundle JS and assets in release mode
 *   bundleInRelease: true,
 *
 *   // whether to bundle JS and assets in another build variant (if configured).
 *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
 *   // The configuration property can be in the following formats
 *   //         'bundleIn${productFlavor}${buildType}'
 *   //         'bundleIn${buildType}'
 *   // bundleInFreeDebug: true,
 *   // bundleInPaidRelease: true,
 *   // bundleInBeta: true,
 *
 *   // whether to disable dev mode in custom build variants (by default only disabled in release)
 *   // for example: to disable dev mode in the staging build type (if configured)
 *   devDisabledInStaging: true,
 *   // The configuration property can be in the following formats
 *   //         'devDisabledIn${productFlavor}${buildType}'
 *   //         'devDisabledIn${buildType}'
 *
 *   // the root of your project, i.e. where "package.json" lives
 *   root: "../../",
 *
 *   // where to put the JS bundle asset in debug mode
 *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
 *
 *   // where to put the JS bundle asset in release mode
 *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in debug mode
 *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in release mode
 *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
 *
 *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
 *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
 *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
 *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
 *   // for example, you might want to remove it from here.
 *   inputExcludes: ["android/**", "ios/**"],
 *
 *   // override which node gets called and with what additional arguments
 *   nodeExecutableAndArgs: ["node"],
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

project.ext.vectoricons = [
        iconFontNames: [ 'MaterialIcons.ttf', 'EvilIcons.ttf', 'MaterialCommunityIcons.ttf', 'Ionicons.ttf' ] // Name of the font files you want to copy
]

apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"





apply plugin: 'com.android.application'


project.ext.react = [
    entryFile: "index.js"
]

apply from: "../../node_modules/react-native/react.gradle"

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = true

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"

    defaultConfig {
        applicationId "com.nameproject"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        vectorDrawables.useSupportLibrary = true 
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
        /*manifestPlaceholders = [onesignal_app_id: "bddacd3f-7812-4a29-b038-ebf844c9826d",
                                onesignal_google_project_number: "712648705913"]*/
        manifestPlaceholders = [onesignal_app_id: "bddacd3f-7812-4a29-b038-ebf844c9826d",
                                onesignal_google_project_number: "712648705914"]
    }
    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 true  // 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
            }
        }
    }
}

dependencies {
    compile project(':react-native-onesignal')
    compile project(':react-native-contacts')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile project(':react-native-navigation')
    compile project(':react-native-vector-icons')
    compile project(':react-native-fetch-blob')
    compile project(':react-native-photo-view')
    compile project(':react-native-i18n')
    compile project(':react-native-sqlite-storage')
    compile project(':react-native-linear-gradient')
    compile project(':react-native-image-crop-picker')
    compile project(':react-native-sound')
    compile project(':react-native-open-settings')

}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

@aspidvip 이것은 react-native-onesignal/build.gradle 및 app/build.gradle 의 Android API 레벨이 μΌμΉ˜ν•˜μ§€ μ•Šμ„ κ°€λŠ₯성이 μžˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€. μ•±μ˜ API μˆ˜μ€€μ„ λ‹€μŒκ³Ό 같이 λ³€κ²½ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

    compileSdkVersion 23
    buildToolsVersion "23.0.1"

κ°€μž₯ μ€‘μš”ν•œ 것은 일치 ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. react-native-onesignal/build.gradle 둜 μ΄λ™ν•˜μ—¬ μ›ν•˜λŠ” λŒ€λ‘œ λ³€κ²½ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

build.gradle 파일과 μΌμΉ˜ν•΄λ„ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

@hamadasamir85 ν™˜κ²½μ΄ μ–΄λ–»κ²Œ μƒκ²ΌλŠ”μ§€, μ–΄λ–€ 쒅속성을 μ‚¬μš©ν•˜κ³  μžˆλŠ”μ§€ 등을 μ „ν˜€ λͺ¨λ¦…λ‹ˆλ‹€. μ§€κΈˆκΉŒμ§€ aspidvip은 build.gradle 및 기타 μ„ΈλΆ€ 정보λ₯Ό κ²Œμ‹œν•œ μœ μΌν•œ μ‚¬λžŒμž…λ‹ˆλ‹€. 이것은 κ΄‘λ²”μœ„ν•œ 문제이며 λ§Žμ€ 잠재적인 원인이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. aspidvip에 μš”μ²­ν•œ 것과 λ™μΌν•œ μ„ΈλΆ€ 정보λ₯Ό κ²Œμ‹œν•˜μ‹­μ‹œμ˜€.

@aspidvip 버전 μΌμΉ˜κ°€ μž‘λ™ν•˜λŠ”μ§€/μž‘λ™ν•˜μ§€ μ•ŠλŠ”μ§€ μ•Œλ €μ£Όκ³  μ‹œλ„ν•œ/μ‹œλ„ν•˜μ§€ μ•Šμ€ Android API λ ˆλ²¨λ„ μ•Œλ €μ£Όμ‹­μ‹œμ˜€.

그리고 μ†”μ§νžˆ λ§ν•΄μ„œ, 이 문제λ₯Ό μž¬ν˜„ν•˜λŠ” 데λͺ¨ ν”„λ‘œμ νŠΈλ₯Ό 보낼 수 μžˆλ‹€λ©΄ _정말_ 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

λ™μΌν•œ 문제:

μ‹ μ„ ν•œ λ°˜μ‘ λ„€μ΄ν‹°λΈŒ ν”„λ‘œμ νŠΈμ—μ„œ

νŒ¨ν‚€μ§€.json

````{
"이름": "λ§ˆμ΄μ•±",
"버전": "0.0.1",
"λΉ„κ³΅κ°œ": 사싀,
"슀크립트": {
"μ‹œμž‘": "λ…Έλ“œ node_modules/react-native/local-cli/cli.js μ‹œμž‘",
"ν…ŒμŠ€νŠΈ": "농담"
},
"쒅속성": {
"λ°˜μ‘": "16.3.1",
"λ°˜μ‘ λ„€μ΄ν‹°λΈŒ": "0.55.4",
"react-native-onesignal": "^3.2.4"
},
"devDependencies": {
"바벨 농담": "22.4.4",
"babel-preset-react-native": "4.0.0",
"농담": "22.4.4",
"λ°˜μ‘ ν…ŒμŠ€νŠΈ λ Œλ”λŸ¬": "16.3.1"
},
"농담": {
"사전 μ„€μ •": "λ°˜μ‘ λ„€μ΄ν‹°λΈŒ"
}
}

````

둜그캣

````
05-23 23:08:46.555 12785-12785/? E/μ ‘ν•©μž: v2
05-23 23:08:46.555 12785-12785/? I/libpersona: KNOX_SDCARDκ°€ 10304λ₯Ό 확인 μ€‘μž…λ‹ˆλ‹€.
KNOX_SDCARD 페λ₯΄μ†Œλ‚˜ μ•„λ‹˜
05-23 23:08:46.557 12785-12785/? E/μ ‘ν•©μž: accessInfo: 0
05-23 23:08:46.558 12785-12785/? W/SELinux: SELinux selinux_android_compute_policy_index : μ •μ±… 색인[2], Con:u :r: zygote:s0 SPD:SEPF_SECMOBILE_7.0_0006 RAM:SEPF_SECMOBILE_7.0_0009 , [-1 -1 -9 -1 0 1]
05-23 23:08:46.561 12785-12785/? I/SELinux: SELinux: seapp_context_lookup: seinfo=untrusted, level=s0:c512,c768, pkgname=app.myapp
05-23 23:08:46.569 12785-12785/? I/art: 지연 ν™œμ„±ν™” - Xcheck:jni
05-23 23:08:46.623 12785-12785/? D/TimaKeyStoreProvider: TimaSignatureλ₯Ό μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:46.624 12785-12785/? D/ActivityThread: TimaKeyStore κ³΅κΈ‰μž μΆ”κ°€
05-23 23:08:46.735 12785-12785/app.myapp D/ContextRelationMgrBrdg: loadKlass(): caller=com.samsung.android.bridge.multiscreen.common.ContextRelationManagerBridge.:28 android.app.LoadedApk.make μ‘μš© ν”„λ‘œκ·Έλž¨:840
05-23 23:08:46.748 12785-12785/app.myapp I/FirebaseInitProvider: FirebaseApp μ΄ˆκΈ°ν™” β€‹β€‹μ‹€νŒ¨
05-23 23:08:46.753 12785-12785/app.myapp V/fb-UnpackingSoSource: 잠긴 dso μ €μž₯μ†Œ /data/user/0/app.myapp/lib-main
05-23 23:08:46.756 12785-12785/app.myapp V/fb-UnpackingSoSource: deps μ €μž₯μ†Œμ˜ deps 뢈일치: μž¬μƒμ„±
κ·Έλž˜μ„œ λ”λŸ¬μš΄ μ €μž₯: μž¬μƒ
05-23 23:08:46.817 12785-12785/app.myapp D/ApkSoSource: lib/armeabi-v7a/libfb.so κ³ λ € λΆˆκ°€: libdir둜 μ—°κΈ°
lib/armeabi-v7a/libfolly_json.so에 λŒ€ν•œ κ³ λ €λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ: libdir둜 μ—°κΈ°
05-23 23:08:46.817 12785-12785/app.myapp D/ApkSoSource: lib/armeabi-v7a/libglog.so κ³ λ € λΆˆκ°€: libdir둜 μ—°κΈ°
lib/armeabi-v7a/libglog_init.so에 λŒ€ν•œ κ³ λ €λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ: libdir둜 μ—°κΈ°
lib/armeabi-v7a/libgnustl_shared.so에 λŒ€ν•œ κ³ λ €λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ: libdir둜 μ—°κΈ°
lib/armeabi-v7a/libicu_common.so에 λŒ€ν•œ κ³ λ €λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ: libdir둜 μ—°κΈ°
05-23 23:08:46.818 12785-12785/app.myapp D/ApkSoSource: lib/armeabi-v7a/libimagepipeline.so에 λŒ€ν•œ κ³ λ €λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ: libdir둜 μ—°κΈ°
lib/armeabi-v7a/libjsc.so에 λŒ€ν•œ κ³ λ €λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ: libdir둜 μ—°κΈ°
lib/armeabi-v7a/libprivatedata.so에 λŒ€ν•œ κ³ λ €λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ: libdir둜 μ—°κΈ°
lib/armeabi-v7a/libreactnativejni.so에 λŒ€ν•œ κ³ λ €λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ: libdir둜 μ—°κΈ°
lib/armeabi-v7a/libyoga.so에 λŒ€ν•œ κ³ λ €λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŒ: libdir둜 μ—°κΈ°
05-23 23:08:46.818 12785-12785/app.myapp V/fb-UnpackingSoSource: DSO μ €μž₯μ†Œ μž¬μƒμ„± com.facebook.soloader.ApkSoSource
05-23 23:08:46.819 12785-12785/app.myapp V/fb-UnpackingSoSource: syncer μž‘μ—…μž μ‹œμž‘ 쀑
05-23 23:08:46.836 12785-12785/app.myapp V/fb-UnpackingSoSource: /data/user/0/app.myapp/lib-main에 λŒ€ν•œ dso μ €μž₯μ†Œ 잠금 ν•΄μ œ(syncer μŠ€λ ˆλ“œμ—μ„œ)
/data/user/0/app.myapp/lib-main에 λŒ€ν•œ dso μ €μž₯μ†Œ μž κΈˆμ„ ν•΄μ œν•˜μ§€ μ•ŠμŒ(동기화 μŠ€λ ˆλ“œ μ‹œμž‘λ¨)
05-23 23:08:46.914 12785-12785/app.myapp D/ReactNative: ReactInstanceManager.ctor()
05-23 23:08:46.936 12785-12785/app.myapp D/NetworkSecurityConfig: ν”Œλž«νΌ 기본값을 μ‚¬μš©ν•˜μ—¬ μ§€μ •λœ λ„€νŠΈμ›Œν¬ λ³΄μ•ˆ ꡬ성 μ—†μŒ
05-23 23:08:46.988 12785-12785/app.myapp D/SensorManager: registerListener :: 0, K6DS3TR 가속도 μ„Όμ„œ, 66667, 0,
05-23 23:08:47.027 12785-12785/app.myapp D/ReactNative: ReactInstanceManager.createReactContextInBackground()
ReactInstanceManager.recreateReactContextInBackgroundInner()
05-23 23:08:47.066 12785-12851/app.myapp W/ unknown:InspectorPackagerConnection : 포μž₯기에 μ—°κ²°ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μžλ™μœΌλ‘œ λ‹€μ‹œ μ‹œλ„ν•©λ‹ˆλ‹€.
05-23 23:08:47.117 12785-12785/app.myapp D/InputTransport: μž…λ ₯ 채널 ꡬ성: fd=65
05-23 23:08:47.118 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: setView = DecorView@40d2e6a [MainActivity] touchMode=true
05-23 23:08:47.125 12785-12785/app.myapp D/SensorManager: unregisterListener ::
05-23 23:08:47.145 12785-12785/app.myapp D/SensorManager: registerListener :: 0, K6DS3TR 가속도 μ„Όμ„œ, 66667, 0,
05-23 23:08:47.207 12785-12853/app.myapp I/OpenGLRenderer: μ΄ˆκΈ°ν™”λœ EGL, 버전 1.4
05-23 23:08:47.207 12785-12853/app.myapp D/OpenGLRenderer: μŠ€μ™‘ λ™μž‘ 1
05-23 23:08:47.229 12785-12853/app.myapp D/libGLESv1: STS_GLApi : DTSλŠ” νŒ¨ν‚€μ§€μ— λŒ€ν•΄ ν—ˆμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€: app.myapp
[05-23 23:08:47.232 12785-12853/app.myapp D/mali_winsys: EGLint new_window_surface(egl_winsys_display , void , EGLSurface, EGLConfig, egl_winsys_surface , 04 λ₯Ό λ°˜ν™˜ ν•©λ‹ˆλ‹€.05-23 23:08:47.255 12785-12785/app.myapp D/InputTransport: μž…λ ₯ 채널 ꡬ성: fd=7105-23 23:08:47.255 12785-12785/app.myapp D/ ViewRootImpl@5c120c2 [Po pupWindow:2eda90d ]: setView = android.widget.PopupWindow$PopupDecorView{3423ed3 VE..... NS.


ν˜•μ‹ : 1
05-23 23:08:47.550 12785-12785/app.myapp D/ ViewRootImpl@5c120c2 [Po pupWindow:2eda90d ]: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect , 0) λ˜λŠ”=1
05-23 23:08:48.641 12785-12785/app.myapp D/ ViewRootImpl@5c120c2 [Po pupWindow:2eda90d ]: dispatchDetachedFromWindow
05-23 23:08:48.670 12785-12785/app.myapp D/InputTransport: μž…λ ₯ 채널 파괴: fd=71
05-23 23:08:48.671 12785-12785/app.myapp D/ReactNative: ReactInstanceManager.onJSBundleLoadedFromServer()
05-23 23:08:48.672 12785-12785/app.myapp D/ReactNative: ReactInstanceManager.recreateReactContextInBackground()
05-23 23:08:48.673 12785-12785/app.myapp D/ReactNative: ReactInstanceManager.runCreateReactContextOnNewThread()
05-23 23:08:48.697 12785-13022/app.myapp I/art: Thread[25,tid=13022,Native,Thread*=0xdeac1600,peer=0x12cdf5e0,"Thread-5"] "라이브러리 λ‘œλ“œλ₯Ό μœ„ν•œ μž¬κ·€μ  μ‹œλ„ /data/app/app.myapp-2/lib/arm/libfb.so"
05-23 23:08:48.699 12785-13022/app.myapp D/ReactNative: ReactInstanceManager.createReactContext()
05-23 23:08:48.711 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTGroupViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.713 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTGroupShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.717 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTShapeViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
com.facebook.react.views.art.ARTShapeShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.720 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTTextViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
com.facebook.react.views.art.ARTTextShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.722 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.checkbox.ReactCheckBoxManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.729 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.uimanager.LayoutShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.740 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.picker.ReactDialogPickerManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.744 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.drawer.ReactDrawerLayoutManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.749 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.picker.ReactDropdownPickerManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.750 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.scroll.ReactHorizontalScrollViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.762 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.scroll.ReactHorizontalScrollContainerViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.764 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.progressbar.ReactProgressBarViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.767 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.progressbar.ProgressBarShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.769 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.scroll.ReactScrollViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.776 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.slider.ReactSliderManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.780 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.slider.ReactSliderManager$ReactSliderShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.781 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.switchview.ReactSwitchManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.784 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.switchview.ReactSwitchManager$ReactSwitchShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.785 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.toolbar.ReactToolbarManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.791 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.webview.ReactWebViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.797 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.swiperefresh.SwipeRefreshLayoutManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.802 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTSurfaceViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.803 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.art.ARTSurfaceViewShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.804 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.805 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.807 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.image.ReactImageManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.814 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.modal.ReactModalHostManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.817 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.modal.ModalHostShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.818 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.ReactRawTextManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.820 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.ReactRawTextShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.822 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.textinput.ReactTextInputManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.835 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.textinput.ReactTextInputShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.841 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.ReactTextViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.847 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.ReactTextShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.848 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.view.ReactViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.857 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.viewpager.ReactViewPagerManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.862 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater : com.facebook.react.views.text.ReactVirtualTextViewManager ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ μ„€μ •μžλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
com.facebook.react.views.text.ReactVirtualTextShadowNode ν΄λž˜μŠ€μ— λŒ€ν•΄ μƒμ„±λœ setterλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:08:48.885 12785-13022/app.myapp D/ReactNative: React Xplat Bridgeλ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” μ€‘μž…λ‹ˆλ‹€.
05-23 23:08:48.890 12785-13022/app.myapp D/ReactNative: initializeBridge 전에 React Xplat Bridge μ΄ˆκΈ°ν™” 쀑
05-23 23:08:48.905 12785-13022/app.myapp D/ReactNative: initializeBridge ν›„ React Xplat Bridge μ΄ˆκΈ°ν™” 쀑
CatalystInstanceImpl.runJSBundle()
05-23 23:08:48.906 12785-13054/app.myapp D/ReactNative: ReactInstanceManager.setupReactContext()
CatalystInstanceImpl.initialize()
05-23 23:08:48.907 12785-13054/app.myapp D/ReactNative: ReactInstanceManager.attachRootViewToInstance()
05-23 23:08:48.907 12785-12785/app.myapp W/ unknown:ReactNative : Packager 연결이 이미 μ—΄λ € μžˆμŠ΅λ‹ˆλ‹€.
05-23 23:08:49.512 12785-13054/app.myapp I/WebViewFactory: com.android.chrome 버전 66.0.3359.158(μ½”λ“œ 335915852) λ‘œλ“œ 쀑
05-23 23:08:49.675 12785-13054/app.myapp I/cr_LibraryLoader: λ„€μ΄ν‹°λΈŒ 라이브러리 λ‘œλ“œ μ‹œκ°„: 13ms(νƒ€μž„μŠ€νƒ¬ν”„ 3227-3240)
05-23 23:08:49.704 12785-13054/app.myapp I/chromium: [ INFO:library_loader_hooks.cc (36)] 크둬 λ‘œκΉ… μ‚¬μš©: μˆ˜μ€€ = 0, κΈ°λ³Έ 상세 μˆ˜μ€€ = 0
05-23 23:08:49.705 12785-13054/app.myapp I/cr_LibraryLoader: μ˜ˆμƒ λ„€μ΄ν‹°λΈŒ 라이브러리 버전 번호 "66.0.3359.158", μ‹€μ œ λ„€μ΄ν‹°λΈŒ 라이브러리 버전 번호 "66.0.3359.158"
05-23 23:08:49.994 12785-13053/app.myapp I/ReactNativeJS: appParams: {"rootTag":1}둜 μ‘μš© ν”„λ‘œκ·Έλž¨ "myapp"을 μ‹€ν–‰ μ€‘μž…λ‹ˆλ‹€. __DEV__ === true, 개발 μˆ˜μ€€ κ²½κ³ κ°€ 켜져 있고 μ„±λŠ₯ μ΅œμ ν™”κ°€ κΊΌμ Έ μžˆμŠ΅λ‹ˆλ‹€.
05-23 23:08:50.096 12785-13054/app.myapp E/onesignal: ν™œλ™μ΄ null true λ˜λŠ” oneSignalInitDonefalse이기 λ•Œλ¬Έμ— OneSignal SDKλ₯Ό μ΄ˆκΈ°ν™”ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
05-23 23:09:03.299 12785-12798/app.myapp I/art: λ°°κ²½ κ³ μ • λ™μ‹œ 마크 μŠ€μœ• GC ν•΄μ œ 22289(2MB) AllocSpace 개체, 21(484KB) LOS 개체, 15% μ—¬μœ , 16MB/194us μΌμ‹œ 쀑지 90 총 119.769ms
05-23 23:09:21.462 12785-12785/app.myapp W/ unknown:ReactNative : Packager 연결이 이미 μ—΄λ € μžˆμŠ΅λ‹ˆλ‹€.
05-23 23:09:21.618 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0) - 0, λ˜λŠ”=1
05-23 23:09:21.856 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_RESIZED: ci=Rect(0, 84 - 0, 0) vi=Rect(0, 04) - 0, λ˜λŠ”=1
05-23 23:09:21.894 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1
05-23 23:09:21.904 12785-12785/app.myapp V/InputMethodManager: μ‹œμž‘ μž…λ ₯: tba=android.view.inputmethod. EditorInfo@95c25a2 nm : app.myapp ic=null
05-23 23:09:21.904 12785-12785/app.myapp I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
05-23 23:09:22.052 12785-12799/app.myapp D/InputTransport: μž…λ ₯ 채널 ꡬ성: fd=86
05-23 23:09:22.053 12785-12785/app.myapp V/InputMethodManager: μ‹œμž‘ μž…λ ₯: tba=android.view.inputmethod. EditorInfo@dcef9f0 nm : app.myapp ic=null
05-23 23:09:23.373 12785-12791/app.myapp I/art: λΆ€λΆ„ μ½”λ“œ μΊμ‹œ μˆ˜μ§‘ μˆ˜ν–‰, μ½”λ“œ=30KB, 데이터=30KB
05-23 23:09:23.374 12785-12791/app.myapp I/art: μ½”λ“œ μΊμ‹œ μˆ˜μ§‘ ν›„, μ½”λ“œ=30KB, 데이터=30KB
μ½”λ“œ μΊμ‹œ μš©λŸ‰μ„ 128KB둜 늘리기
05-23 23:09:51.860 12785-12785/app.myapp V/InputMethodManager: μ‹œμž‘ μž…λ ₯: tba=android.view.inputmethod. EditorInfo@642c97f nm : app.myapp ic=null
05-23 23:09:51.861 12785-12785/app.myapp I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
05-23 23:09:51.871 12785-12785/app.myapp D/InputTransport: μž…λ ₯ 채널 ꡬ성: fd=83
μž…λ ₯ 채널 파괴: fd=86
05-23 23:09:52.285 12785-12785/app.myapp D/SensorManager: unregisterListener ::
05-23 23:09:52.726 12785-12785/app.myapp V/InputMethodManager: μ‹œμž‘ μž…λ ₯: tba=android.view.inputmethod. EditorInfo@dc47e9b nm : app.myapp ic=null
05-23 23:09:52.726 12785-12785/app.myapp I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
05-23 23:09:52.727 12785-12785/app.myapp D/InputTransport: μž…λ ₯ 채널 파괴: fd=83
05-23 23:09:52.807 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0) - 0, λ˜λŠ”=1
05-23 23:09:52.888 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_WINDOW_FOCUS_CHANGED 0
05-23 23:13:47.153 12785-12798/app.myapp I/art: λ°°κ²½ λΆ€λΆ„ λ™μ‹œ 마크 μŠ€μœ• GC ν•΄μ œ 60244(2MB) AllocSpace 개체, 9(3MB) LOS 개체, 40% μ—¬μœ , 12MB/21MB, μΌμ‹œ 쀑지 764us 총 105.326ms

````

μ•±.js

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * <strong i="7">@flow</strong>
 */

import React, { Component } from 'react';
import {
  Platform,
  StyleSheet,
  Text,
  View
} from 'react-native';
import OneSignal from 'react-native-onesignal';



const instructions = Platform.select({
  ios: 'Press Cmd+R to reload...,\n' +
    'Cmd+D or shake for dev menu',
  android: 'Double tap R on your keyboard to reload,\n' +
    'Shake or press menu button for dev menu',
});

type Props = {};
export default class App extends Component<Props> {

    componentWillMount() {
        OneSignal.init("1c25f475-8b98-487d-8358-b3934f9bff64");
        OneSignal.addEventListener('received', this.onReceived);
        OneSignal.addEventListener('opened', this.onOpened);
        OneSignal.addEventListener('ids', this.onIds);
    }

    componentWillUnmount() {
        OneSignal.removeEventListener('received', this.onReceived);
        OneSignal.removeEventListener('opened', this.onOpened);
    }
    onIds=(deviceId)=> {
        console.log('Device info: ', deviceId);
    }
    onReceived(notification) {
        console.log("Notification received: ", notification);
    }

    onOpened(openResult) {
        console.log('Message: ', openResult.notification.payload.body);
        console.log('Data: ', openResult.notification.payload.additionalData);
        console.log('isActive: ', openResult.notification.isAppInFocus);
        console.log('openResult: ', openResult);
    }

  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit App.js
        </Text>
        <Text style={styles.instructions}>
          {instructions}
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});


build.gradle

````
ν”ŒλŸ¬κ·ΈμΈ 적용: "com.android.application"

com.android.build.OutputFile κ°€μ Έμ˜€κΈ°

/**

  • react.gradle νŒŒμΌμ€ 각 λΉŒλ“œ λ³€ν˜•μ— λŒ€ν•œ μž‘μ—…μ„ λ“±λ‘ν•©λ‹ˆλ‹€(예: bundleDebugJsAndAssets
  • 및 bundleReleaseJsAndAssets).
  • 이듀은 기본적으둜 Android λΉŒλ“œ 쀑에 μ˜¬λ°”λ₯Έ 인수λ₯Ό μ‚¬μš©ν•˜μ—¬ react-native bundle λ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.
  • μ£ΌκΈ°. 기본적으둜 bundleDebugJsAndAssetsλŠ” κ±΄λ„ˆλœλ‹ˆλ‹€. 디버그/개발 λͺ¨λ“œμ—μ„œ λ‘œλ“œν•˜λŠ” 것을 μ„ ν˜Έν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
  • 개발 μ„œλ²„μ—μ„œ 직접 λ²ˆλ“€. μ•„λž˜μ—μ„œ κ°€λŠ₯ν•œ λͺ¨λ“  ꡬ성을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 그리고 κ·Έλ“€μ˜ κΈ°λ³Έκ°’. ꡬ성 블둝을 μΆ”κ°€ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€λ©΄ ꡬ성 블둝 μ•žμ— μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • apply from: "../../node_modules/react-native/react.gradle" 라인.
    *
  • project.ext.react = [
  • // JS λ²ˆλ“€μ„ ν¬ν•¨ν•˜λŠ” μƒμ„±λœ μžμ‚° 파일의 이름
  • λ²ˆλ“€ μžμ‚° 이름: "index.android.bundle",
    *
  • // λ²ˆλ“€ 생성을 μœ„ν•œ μ—”νŠΈλ¦¬ 파일
  • ν•­λͺ© 파일: "index.android.js",
    *
  • // 디버그 λͺ¨λ“œμ—μ„œ JS와 μžμ‚°μ„ λ²ˆλ“€ν• μ§€ μ—¬λΆ€
  • λ²ˆλ“€μΈλ””λ²„κ·Έ: 거짓,
    *
  • // 릴리슀 λͺ¨λ“œμ—μ„œ JS와 μžμ‚°μ„ λ²ˆλ“€ν• μ§€ μ—¬λΆ€
  • BundleInRelease: μ°Έ,
    *
  • // λ‹€λ₯Έ λΉŒλ“œ λ³€ν˜•μ—μ„œ JS 및 μžμ‚°μ„ λ²ˆλ“€ν• μ§€ μ—¬λΆ€(κ΅¬μ„±λœ 경우).
  • // http://tools.android.com/tech-docs/new-build-system/user-guide#TOC -Build-Variants μ°Έμ‘°
  • // ꡬ성 속성은 λ‹€μŒ ν˜•μ‹μΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • // 'bundleIn${productFlavor}${λΉŒλ“œνƒ€μž…}'
  • // 'λ²ˆλ“€μΈ${λΉŒλ“œνƒ€μž…}'
  • // bundleInFreeDebug: μ°Έ,
  • // bundleInPaidRelease: μ°Έ,
  • // λ²ˆλ“€μΈλ² νƒ€: μ°Έ,
    *
  • // μ‚¬μš©μž μ •μ˜ λΉŒλ“œ λ³€ν˜•μ—μ„œ 개발 λͺ¨λ“œλ₯Ό λΉ„ν™œμ„±ν™”ν• μ§€ μ—¬λΆ€(기본적으둜 λ¦΄λ¦¬μŠ€μ—μ„œλ§Œ λΉ„ν™œμ„±ν™”λ¨)
  • // 예: μŠ€ν…Œμ΄μ§• λΉŒλ“œ μœ ν˜•μ—μ„œ 개발 λͺ¨λ“œ λΉ„ν™œμ„±ν™”(κ΅¬μ„±λœ 경우)
  • devDisabledInStaging: μ°Έ,
  • // ꡬ성 속성은 λ‹€μŒ ν˜•μ‹μΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • // 'devDisabledIn${productFlavor}${λΉŒλ“œ μœ ν˜•}'
  • // 'devDisabledIn${λΉŒλ“œ μœ ν˜•}'
    *
  • // ν”„λ‘œμ νŠΈμ˜ 루트, 즉 "package.json"이 μžˆλŠ” μœ„μΉ˜
  • 루트: "../../",
    *
  • // 디버그 λͺ¨λ“œμ—μ„œ JS λ²ˆλ“€ μžμ‚°μ„ 넣을 μœ„μΉ˜
  • jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
    *
  • // 릴리슀 λͺ¨λ“œμ—μ„œ JS λ²ˆλ“€ μžμ‚°μ„ 넣을 μœ„μΉ˜
  • jsBundleDirRelease: "$buildDir/intermediates/assets/release",
    *
  • // λ“œλ‘œμ–΄λΈ” λ¦¬μ†ŒμŠ€λ₯Ό 넣을 μœ„μΉ˜ / React Native μžμ‚°, 예λ₯Ό λ“€μ–΄ λ‹€μŒμ„ 톡해 μ‚¬μš©ν•˜λŠ” μžμ‚°
  • // require('./image.png')), 디버그 λͺ¨λ“œμ—μ„œ
  • resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
    *
  • // λ“œλ‘œμ–΄λΈ” λ¦¬μ†ŒμŠ€λ₯Ό 넣을 μœ„μΉ˜ / React Native μžμ‚°, 예λ₯Ό λ“€μ–΄ λ‹€μŒμ„ 톡해 μ‚¬μš©ν•˜λŠ” μžμ‚°
  • // require('./image.png')), 릴리슀 λͺ¨λ“œμ—μ„œ
  • resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
    *
  • // JS νŒŒμΌμ΄λ‚˜ μžμ‚°μ΄ λ³€κ²½λ˜μ§€ μ•ŠμœΌλ©΄ 기본적으둜 gradle μž‘μ—…μ„ κ±΄λ„ˆλœλ‹ˆλ‹€. 이것은 의미
  • // android/ λ˜λŠ” ios/의 νŒŒμΌμ„ ν™•μΈν•˜μ—¬ μž‘μ—…μ΄ μ΅œλŒ€μΈμ§€ μ—¬λΆ€λ₯Ό κ²°μ •ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • // 데이트; μ„±λŠ₯μƒμ˜ 이유둜 λ¬΄μ‹œν•˜κ³  싢은 λ‹€λ₯Έ 폴더가 μžˆλŠ” 경우(gradle
  • // 전체 트리λ₯Ό 인덱싱함), 여기에 μΆ”κ°€ν•©λ‹ˆλ‹€. λ˜λŠ” android/에 JS 파일이 μžˆλŠ” 경우
  • // 예λ₯Ό λ“€μ–΄ μ—¬κΈ°μ—μ„œ μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μž…λ ₯ μ œμ™Έ: ["μ•ˆλ“œλ‘œμ΄λ“œ/ ", "ios/ "],
    *
  • // ν˜ΈμΆœλ˜λŠ” λ…Έλ“œμ™€ μΆ”κ°€ 인수λ₯Ό μž¬μ •μ˜ν•©λ‹ˆλ‹€.
  • nodeExecutableAndArgs: ["λ…Έλ“œ"],
    *
  • // νŒ¨ν‚€μ €μ— μΆ”κ°€ 인수λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  • extraPackagerArgs: []
  • ]
    */

project.ext.react = [
ν•­λͺ© 파일: "index.js"
]

적용: "../../node_modules/react-native/react.gradle"

/**

  • ν•˜λ‚˜κ°€ μ•„λ‹Œ 두 개의 κ°œλ³„ APKλ₯Ό μƒμ„±ν•˜λ €λ©΄ 이것을 true둜 μ„€μ •ν•˜μ‹­μ‹œμ˜€.

    • ARM κΈ°κΈ°μ—μ„œλ§Œ μž‘λ™ν•˜λŠ” APK


    • x86 κΈ°κΈ°μ—μ„œλ§Œ μž‘λ™ν•˜λŠ” APK

  • μž₯점은 APK의 크기가 μ•½ 4MB둜 μ€„μ–΄λ“ λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
  • λͺ¨λ“  APKλ₯Ό Play μŠ€ν† μ–΄μ— μ—…λ‘œλ“œν•˜λ©΄ μ‚¬λžŒλ“€μ΄ λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.
  • μž₯치의 CPU μ•„ν‚€ν…μ²˜μ— 따라 μ˜¬λ°”λ₯Έ κ²ƒμž…λ‹ˆλ‹€.
    */
    def enableSeparateBuildPerCPUArchitecture = 거짓

/**

  • Proguardλ₯Ό μ‹€ν–‰ν•˜μ—¬ 릴리슀 λΉŒλ“œμ—μ„œ Java λ°”μ΄νŠΈ μ½”λ“œλ₯Ό μΆ•μ†Œν•©λ‹ˆλ‹€.
    */
    def enableProguardInReleaseBuilds = 거짓

μ•ˆλ“œλ‘œμ΄λ“œ {
compileSdk버전 23
buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "app.myapp"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
}
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"
    }
}
// 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-onesignal')
컴파일 fileTree(dir: "libs", 포함: ["*.jar"])
". com.android 컴파일 지원 : APPCOMPAT-V7을 : 23.4.0λ₯Ό"
compile "com.facebook. react:react-native :+" // node_modulesμ—μ„œ
}

// BUCK으둜 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•œ 번 μ‹€ν–‰ν•©λ‹ˆλ‹€.
// BUCKκ°€ μ‚¬μš©ν•  λͺ¨λ“  컴파일 쒅속성을 libs 폴더에 λ„£μŠ΅λ‹ˆλ‹€.
μž‘μ—… copyDownloadableDepsToLibs(μœ ν˜•: 볡사) {
ꡬ성.μ»΄νŒŒμΌμ—μ„œ
'libs'둜
}

````
그건 κ·Έλ ‡κ³ , κΈ°μ‘΄ ν”„λ‘œμ νŠΈμ—μ„œ μž‘λ™ν•˜κ²Œ λ§Œλ“œλŠ” 것이 λΆˆκ°€λŠ₯ν–ˆκΈ° λ•Œλ¬Έμ— μƒˆλ‘œμš΄ ν”„λ‘œμ νŠΈμ— λ³„ν‘œλ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

이 λ¬Έμ œλ„ κ²ͺκ³  μžˆλŠ” μ‚¬λžŒμ΄λΌλ©΄ 일반적으둜 μ•±μ˜ νŠΉμ • 탐색 μŠ€νƒ λ•Œλ¬Έμž…λ‹ˆλ‹€. 일반적으둜 μœ„μ—μ„œ μ–ΈκΈ‰ν•œ @urbancvekκ³Ό 같이 SDK의 κΈ°λ³Έ μ΄ˆκΈ°ν™”λ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. SDKλŠ” JSλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  κΈ°λ³Έ μ΄ˆκΈ°ν™”λ₯Ό 계속 μ§€μ›ν•˜λ―€λ‘œ 3.1.4둜 λŒμ•„κ°ˆ ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

@cesarve77 @aspidvip λ‘˜ 쀑 λˆ„κ΅¬ 라도 MainApplication.java λ₯Ό κ²Œμ‹œν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

예, ν•˜μ§€λ§Œ One μ‹ ν˜Έμ— μ΅μˆ™ν•˜μ§€ μ•ŠμœΌλ©° λ¬Έμ„œλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

2018-06-09 12:03 GMT+10:00 λΈŒλž˜λ“œ ν—€μ„Έ μ•Œλ¦Ό @github.com :

@urbancvek https://github.com/urbancvek SDKλŠ” μ—¬μ „νžˆ
λ„€μ΄ν‹°λΈŒ μ΄ˆκΈ°ν™”(JSλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ )λ₯Ό μ§€μ›ν•˜λ―€λ‘œ 갈 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.
3.1.4둜 λŒμ•„κ°‘λ‹ˆλ‹€.

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/geektimecoil/react-native-onesignal/issues/516#issuecomment-395931945 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/ADyXp8VcHWtSuGuhqu6GAmhuwEAs28yJks5t6y0MgaJpZM4UFgCX
.

λ‚˜μ€‘μ— ν• κ²Œμš”.

2018-06-12 11:19 GMT+10:00 λΈŒλž˜λ“œ ν—€μ„Έ μ•Œλ¦Ό @github.com :

@cesarve77 https://github.com/cesarve77 @aspidvip
https://github.com/aspidvip λ‘˜ 쀑 ν•˜λ‚˜κ°€
λ©”μΈμ• ν”Œλ¦¬μΌ€μ΄μ…˜.μžλ°”?

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/geektimecoil/react-native-onesignal/issues/516#issuecomment-396435196 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/ADyXp85jPYJ5TPNv7xwQt_3CoZ-rNvsuks5t7xcSgaJpZM4UFgCX
.

μƒˆλ‘œμš΄ readmeμ—μ„œ μƒˆλ‘œμš΄ 지침을 μ—…λ°μ΄νŠΈν•˜κ³  μ‚¬μš©ν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€. λͺ‡ 번의 μ‹œλ„ 끝에 λ‚˜λŠ”
λ§ˆμΉ¨λ‚΄ "react-native-onesignal": "3.0.7", 둜 λ‹€μ‹œ μ „ν™˜ν•˜κΈ°λ‘œ κ²°μ •ν–ˆκ³  λͺ¨λ“  것이 이전과 같이 μž‘λ™ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 3.2.4, 3.2.3 ...을 ν…ŒμŠ€νŠΈν–ˆκ³  λ¬Έμ œκ°€ λ°œμƒν•  λ•Œλ§ˆλ‹€. κ·Έλž˜μ„œ λ‹€λ₯Έ ν”„λ‘œμ νŠΈ 쀑 ν•˜λ‚˜μ˜ 버전을 μ„ νƒν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 기쑴의 κ΅¬ν˜„ (κΈ°λ³Έ μΈ‘)κ°€ λ‹€μ‹œ μ‹œμž‘ν•˜λ €λ©΄ https://github.com/geektimecoil/react-native-onesignal/blob/732491fece1fa92946ca6dacf173af28a2b2e618/README.md을 λ‚΄κ°€ μ „ν™” OneSignal.configure() 에, λ‚΄ μžλ°” 슀크립트 μ½”λ“œ λ‚΄ μ‚¬μš©μžκ°€ 앱에 λ‘œκ·ΈμΈν•˜λ©΄ λ‚΄ mobx μŠ€ν† μ–΄μ— μžˆλŠ” κ²½μš°μž…λ‹ˆλ‹€.

3.2.3의 문제: Unable to initialize the OneSignal SDK because activity is null true or oneSignalInitDonefalse
3.2.4의 문제: You must initialize OneSignal before getting tags! Moving this tag operation to a pending queue.

@nicovak 은 react-native-navigation 와 같은 일뢀 쒅속성을 μ‚¬μš©ν•˜κ³  μžˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€. μ΄λŠ” SDK에 μžλ™μœΌλ‘œ μ „λ‹¬λ˜λŠ” 초기 ν™œλ™μ΄ null이 λ˜λ„λ‘ ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

μš°λ¦¬λŠ” 이에 λŒ€ν•œ μ†”λ£¨μ…˜μ„ 개발 쀑이며, κ·Έ λ™μ•ˆ 이 νŠΉμ • λ¬Έμ œκ°€ λ°œμƒν•˜λŠ” 경우 3.0.7둜 λ‹€μš΄κ·Έλ ˆμ΄λ“œν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

Nightsd01 예 λ‚΄κ°€ μ‚¬μš©ν•˜κ³  react-native-router-flux 에 μ˜μ‘΄ν•˜λŠ” react-navigation 일뢀 검색 ν›„, λ‚˜λŠ” λ§ˆμΉ¨λ‚΄ μ˜ˆμƒλŒ€λ‘œ μž‘μ—…μ„ 진행.

λ‚΄ App.js(index.js에 포함)μ—μ„œ 이벀트 λ¦¬μŠ€λ„ˆλ₯Ό μ„ μ–Έν–ˆλŠ”λ° 이 λ¦¬μŠ€λ„ˆλŠ” λ‚΄ μŠ€ν† μ–΄λ₯Ό μ›ν•˜λŠ” κ°’μœΌλ‘œ μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€. ν•„μš”ν•  λ•Œ μ‰½κ²Œ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이벀트 λ¦¬μŠ€λ„ˆκ°€ λ‚΄ μƒμ μ—μ„œ μ„ μ–Έλ˜κΈ° 전에.
λˆ„κ΅°κ°€κ°€ 같은 경우λ₯Ό 가지고 μžˆλ‹€λ©΄ λ‚˜λŠ” μ½”λ“œμ˜ 예λ₯Ό λ„£μŠ΅λ‹ˆλ‹€.

λ˜ν•œ 앱이 λ‹«νž λ•Œ μ•½κ°„μ˜ λ¬Έμ œκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. opened 이벀트λ₯Ό 받지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. 앱이 λ°±κ·ΈλΌμš΄λ“œμ— μžˆλŠ” κ²½μš°μ—λ§Œ μž‘λ™ν•˜κ³  μœ„μ˜ μ½”λ“œκ°€ λͺ¨λ‘ μ œλŒ€λ‘œ μž‘λ™ν•©λ‹ˆλ‹€.

λ‚΄ App.jsμ—μ„œ

import OneSignal from "react-native-onesignal";

OneSignal.configure({});
OneSignal.addEventListener("opened", openResult => {
  AppStore.handleOpenIfAppClosed(openResult);
});
OneSignal.addEventListener("ids", device => {
  AppStore.handleUserId(device);
});

<strong i="14">@observer</strong>
export default class App extends Component {

λ‚΄ κ°€κ²Œμ—μ„œ

  handleOpenIfAppClosed(openResult) {
    this.pendingNotificationRequest = openResult;
  }

  handleUserId(device) {
    this.userId = device.userId;
  }

@nicovak μ£Όμš” 문제(ν™œλ™μ΄ nullμž„)λ₯Ό μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆμŠ΅λ‹ˆκΉŒ?

λ˜ν•œ opened 문제둜... react-native-onesignal 의 μ΅œμ‹  버전을 계속 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? 이것은 μ–Όλ§ˆ 전에 μˆ˜μ •λœ λ¬Έμ œμž…λ‹ˆλ‹€.

@Nightsd01 μ €λŠ” λ§ˆμ§€λ§‰ 버전(3.0.7)을 μ‚¬μš©ν•˜μ§€ μ•Šκ³  μžˆμŠ΅λ‹ˆλ‹€.
λ‚΄κ°€ λ§ν•œ κ²ƒμ²˜λŸΌ:

3.2.3의 문제: ν™œλ™μ΄ null true λ˜λŠ” oneSignalInitDonefalse이기 λ•Œλ¬Έμ— OneSignal SDKλ₯Ό μ΄ˆκΈ°ν™”ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

3.2.4 문제: νƒœκ·Έλ₯Ό κ°€μ Έμ˜€κΈ° 전에 OneSignal을 μ΄ˆκΈ°ν™”ν•΄μ•Ό ν•©λ‹ˆλ‹€! 이 νƒœκ·Έ μž‘μ—…μ„ 보λ₯˜ 쀑인 λŒ€κΈ°μ—΄λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

@nikovak 3.2.4μ—μ„œ ν•΄λ‹Ή κ²½κ³ λ₯Ό λ¬΄μ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그것은 그것이 λ§ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. μ΄ˆκΈ°ν™”κ°€ μ™„λ£Œλ˜κΈ° 전에 앱이 μ–΄λ–»κ²Œλ“  getTags() λ₯Ό ν˜ΈμΆœν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ—¬μ „νžˆ 잘 μž‘λ™ν•˜κΈ° λ•Œλ¬Έμ— 경고일 λΏμž…λ‹ˆλ‹€.

그것이 3.2.4μ—μ„œ κ²ͺκ³  μžˆλŠ” _only_ 문제라면 3.0.7에 있던 λ§Žμ€ 문제λ₯Ό μˆ˜μ •ν•˜κΈ° λ•Œλ¬Έμ— 3.2.4둜 λ‹€μ‹œ μ—…λ°μ΄νŠΈν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

@Nightsd01 μ•Œκ² μŠ΅λ‹ˆλ‹€ κ°μ‚¬ν•©λ‹ˆλ‹€ 내일 μ‹€μ œ μ„€μ •μœΌλ‘œ ν•΄λ΄μ•Όκ² λ„€μš” πŸ‘

@Nightsd01 λ‹€μ‹œ 3.2.4둜 μ—…λ°μ΄νŠΈλ₯Ό μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ„€μ΄ν‹°λΈŒ μ΄ˆκΈ°ν™”μ™€ μžλ°”μŠ€ν¬λ¦½νŠΈ μ΄ˆκΈ°ν™”λ₯Ό μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. componentWillMount μ•±κ³Ό 외뢀에 μ½”λ“œλ₯Ό λ„£μ—ˆμ§€λ§Œ 아무 것도 μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.
μΆ©λΆ„ν•œ μ‹œκ°„μ„ ν• μ• ν–ˆμŠ΅λ‹ˆλ‹€. μ£„μ†‘ν•©λ‹ˆλ‹€. λ‹€μŒ ν”„λ‘œμ νŠΈμ—μ„œ ^3.2.4λ₯Ό μ‹œλ„ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

@aspidvip @nicovak 이 문제의 원인을 νŒŒμ•… ν•˜μ—¬ μƒˆ PRμ—μ„œ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. μ˜€λŠ˜μ΄λ‚˜ 내일 λ¦΄λ¦¬μŠ€μ— ν¬ν•¨λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

@Nightsd01 정말 κ°μ‚¬ν•©λ‹ˆλ‹€. μ‚¬μš© κ°€λŠ₯ν•œ 경우 λ‹€μŒ μ£Ό μ›”μš”μΌμ— μ—…κ·Έλ ˆμ΄λ“œν•˜κ³  ν…ŒμŠ€νŠΈν•˜κ² μŠ΅λ‹ˆλ‹€.

μƒˆλ‘œμš΄ μ—…λ°μ΄νŠΈ(3.2.5)κ°€ μΆœμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€! λ‹€λ₯Έ μ‚¬λžŒμ΄ λΉ„μŠ·ν•œ 문제λ₯Ό κ²ͺλŠ”λ‹€λ©΄ 여기에 κ²Œμ‹œν•΄ μ£Όμ‹œλ©΄ 기꺼이 쑰사해 λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

λ°˜μ‘ λ„€μ΄ν‹°λΈŒμ˜ 0.56 버전에 λ‹€μ‹œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.
27 μžˆμ–΄μ•Ό ν•©λ‹ˆκΉŒ? λ¬Έμ„œμ—λŠ” 26 κ°€ μž‘λ™ν•΄μ•Ό ν•œλ‹€κ³  λ‚˜μ™€ μžˆμŠ΅λ‹ˆλ‹€. λ§žμŠ΅λ‹ˆκΉŒ?

    buildToolsVersion = "26.0.3"
    minSdkVersion = 16
    compileSdkVersion = 26
    targetSdkVersion = 26
    supportLibVersion = "26.1.0"
07-31 15:01:50.077 7068-7224/com.*************** I/art: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
        at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
        at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
        at void java.lang.Thread.run() (Thread.java:776)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com..***************-2/base.apk"],nativeLibraryDirectories=[/data/app/com..***************-2/lib/arm, /data/app/com..***************-2/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/vendor/lib, /product/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
        at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
        at void java.lang.Thread.run() (Thread.java:776)
이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰