简体   繁体   English

如何让 react-native-onesignal 在所有设备上都能正常工作?

[英]How could I make react-native-onesignal work on all devices?

I've been facing this scenario for months on my OneSignal and I still haven't figured out how to solve it:几个月来,我一直在 OneSignal 上遇到这种情况,但我仍然没有想出如何解决它:

在此处输入图片说明

My question is: How could I make it work on all devices?我的问题是:我怎样才能让它在所有设备上工作? I imagine that I am getting lost in the settings of the dependencies in the gradle files.我想我在 gradle 文件中的依赖项设置中迷失了方向。

android/build.gradle android/build.gradle

buildscript {
    ext {
        buildToolsVersion = "28.0.3"
        minSdkVersion = 16
        compileSdkVersion = 28
        targetSdkVersion = 29
        googlePlayServicesAuthVersion = "16.0.1"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath('com.android.tools.build:gradle:4.0.1')
        classpath 'com.google.gms:google-services:4.1.0'
    }
}

allprojects {
    repositories {
        mavenLocal()
        maven {
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            url("$rootDir/../node_modules/jsc-android/dist")
        }

        google()
        jcenter()
        maven { url 'https://www.jitpack.io' }
    }
}

android/app/build.gradle android/app/build.gradle

apply plugin: "com.android.application"

import com.android.build.OutputFile

project.ext.react = [
    enableHermes: false,
]

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

def enableSeparateBuildPerCPUArchitecture = false

def enableProguardInReleaseBuilds = false

def jscFlavor = 'org.webkit:android-jsc:+'

def enableHermes = project.ext.react.get("enableHermes", false);

android {
    compileSdkVersion rootProject.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "com.smartial"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 33
        versionName "3.6.1"
        multiDexEnabled true
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
        release {
            storeFile file('smartial-app.jks')
            storePassword KEYSTORE_PASSWORD
            keyAlias KEY_ALIAS
            keyPassword KEY_PASSWORD
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            signingConfig signingConfigs.release
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }

    packagingOptions {
        pickFirst "lib/armeabi-v7a/libc++_shared.so"
        pickFirst "lib/arm64-v8a/libc++_shared.so"
        pickFirst "lib/x86/libc++_shared.so"
        pickFirst "lib/x86_64/libc++_shared.so"
    }

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
            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 {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'com.google.android.gms:play-services-auth:18.0.0'
    implementation "com.google.android.gms:play-services-base:16.0.1"
    implementation "com.google.firebase:firebase-core:16.0.6"
    implementation "com.google.firebase:firebase-messaging:17.3.4"
    implementation "com.facebook.react:react-native:+"  

    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
    compile 'com.android.support:multidex:1.0.1' 

    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
      exclude group:'com.facebook.fbjni'
    }

    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }

    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }

    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }

    implementation project(':react-native-config')

}

task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
apply plugin: 'com.google.gms.google-services'
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"

com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
apply plugin: 'com.google.gms.google-services'

Ps: I'm also using react-native-google-signin in this project. Ps:我也在这个项目中使用 react-native-google-signin 。

Update更新

I opened anissue on react-native-onesignal我开了一个问题上的反应,本机onesignal

It looks like you are using an outdated version of the Android SDK Build Tools.看起来您使用的是过时版本的 Android SDK 构建工具。 Make sure you are downloading them at the correct place as well as updating them often from here: https://developer.android.com/studio/releases/build-tools确保您在正确的位置下载它们并经常从这里更新它们: https : //developer.android.com/studio/releases/build-tools

If this does not fix your OneSignal notifications issues, it might be a messed up setting under your OneSignal.com dashboard.如果这不能解决您的 OneSignal 通知问题,则可能是 OneSignal.com 仪表板下的设置混乱。 Make sure that the server urls that is connecting to are correct.确保连接到的服务器 url 是正确的。

Could you also explain which devices the notifications aren't currently working on?您还可以解释一下通知当前不在哪些设备上工作吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无法确定任务 ':react-native-onesignal:compileDebugAidl' 的依赖关系 - Could not determine the dependencies of task ':react-native-onesignal:compileDebugAidl' 如何使用react-native-onesignal发送本地推送通知 - How to send local push notification with react-native-onesignal 如何在我的 podfile 中指定 react-native-onesignal 的版本? - How do I specify the version of react-native-onesignal in my podfile? 如何从 react-native-onesignal 获取 pushToken? - How to get pushToken from react-native-onesignal? 使用react native在iOS上安装react-native-onesignal时出错 - Error installing react-native-onesignal on iOS using react native 可用于Firebase的Google Analytics(分析)使用react-native-onesignal - Is react-native-onesignal avaiable for Google Analytics for Firebase react-native-onesignal在不打开通知的情况下接收推送通知 - react-native-onesignal receive push notification without opening notification react-native-onesignal无法获得类型为org.gradle.api.Project的根项目“ weather”的未知属性“ android” - react-native-onesignal Could not get unknown property 'android' for root project 'weather' of type org.gradle.api.Project React Native - 如何使 ScrollView 中的 KeyboardAvoidingView 适用于所有设备? - React Native - How to make KeyboardAvoidingView inside a ScrollView work for all devices? 包 react-native-onesignal 已被忽略,因为它包含无效的配置 - Package react-native-onesignal has been ignored because it contains invalid configuration
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM