feat(mobile,deploy): 接入安卓极光与华为通道并准备公网部署配置
客户端默认指向 jxd.jinniu.ink 的 HTTPS/WSS;登录后把 OpenIM userID 设为极光 alias。 华为 agconnect-services.json 不伪造、不入库。Master Secret 只从服务器文件注入。 Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# 华为厂商通道配置文件(缺口)
|
||||
|
||||
华为通道客户端其余依赖已接入。**唯一还缺的文件**是:
|
||||
|
||||
`mobile/android/app/agconnect-services.json`
|
||||
|
||||
## 从哪里取得
|
||||
|
||||
1. 打开华为 [AppGallery Connect](https://developer.huawei.com/consumer/cn/service/josp/agc/index.html)
|
||||
2. 选择与包名 `cn.solsum.jinxunda` 对应的应用
|
||||
3. 项目设置 → 应用 → 下载 `agconnect-services.json`
|
||||
4. 把文件放到本目录(与 `build.gradle.kts` 同级)
|
||||
5. **不要提交进 Git**(文件含华为 client_secret)。仓库已忽略该路径。
|
||||
|
||||
没有这份文件时:
|
||||
|
||||
- 安卓包仍可构建(AGConnect 插件按文件是否存在条件启用)
|
||||
- 极光自己的通道仍可初始化
|
||||
- **华为真机的厂商通道无法接通**,杀进程后的到达率会明显下降
|
||||
|
||||
本阶段不伪造、不提交该文件。
|
||||
@@ -4,6 +4,13 @@ plugins {
|
||||
id("dev.flutter.flutter-gradle-plugin")
|
||||
}
|
||||
|
||||
// 华为 agconnect-services.json 到位后才启用 AGConnect 插件,避免缺文件时整包编不过。
|
||||
// 文件从华为 AppGallery Connect 下载,放到本目录,不要提交进 Git。
|
||||
val agconnectServices = file("agconnect-services.json")
|
||||
if (agconnectServices.exists()) {
|
||||
apply(plugin = "com.huawei.agconnect")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "cn.solsum.jinxunda"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
@@ -15,14 +22,15 @@ android {
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId = "cn.solsum.jinxunda"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
||||
minSdk = flutter.minSdkVersion
|
||||
// 极光厂商通道插件要求 minSdk 24
|
||||
minSdk = 24
|
||||
targetSdk = flutter.targetSdkVersion
|
||||
versionCode = flutter.versionCode
|
||||
versionName = flutter.versionName
|
||||
manifestPlaceholders["JPUSH_PKGNAME"] = "cn.solsum.jinxunda"
|
||||
manifestPlaceholders["JPUSH_APPKEY"] = "95fc2352648a7d4568ac8d72"
|
||||
manifestPlaceholders["JPUSH_CHANNEL"] = "developer-default"
|
||||
}
|
||||
|
||||
// 压缩打包 .so(默认未压缩存储,OpenIM/WebRTC 的 native 库让包多占近一倍体积);
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
<!-- OpenIM 插件注册网络状态监听必须要这个权限;插件自身 manifest 漏了声明,
|
||||
缺它 release 包会 SecurityException 导致插件注册失败、SDK 全部调用无响应 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<!-- Android 13+ 通知栏权限(极光离线推送) -->
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
||||
<!-- 语音消息录音与语音通话 -->
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
||||
@@ -33,6 +36,10 @@
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"
|
||||
/>
|
||||
<!-- 关闭 Flutter 自动深链接,避免厂商通道点击拉起白屏 -->
|
||||
<meta-data
|
||||
android:name="flutter_deeplinking_enabled"
|
||||
android:value="false" />
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
|
||||
@@ -2,4 +2,8 @@ package cn.solsum.jinxunda
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity : FlutterActivity()
|
||||
class MainActivity : FlutterActivity() {
|
||||
// Flutter 3.29+ 默认把启动 Intent 当深链接解析。华为等厂商通道点击拉起时
|
||||
// intent 带 n_extra,路由表没有对应页会白屏。本应用不用官方深链接。
|
||||
override fun shouldHandleDeeplinking(): Boolean = false
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ allprojects {
|
||||
maven("https://maven.aliyun.com/repository/google")
|
||||
maven("https://maven.aliyun.com/repository/central")
|
||||
maven("https://maven.aliyun.com/repository/public")
|
||||
maven("https://developer.huawei.com/repo/")
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ pluginManagement {
|
||||
maven("https://maven.aliyun.com/repository/google")
|
||||
maven("https://maven.aliyun.com/repository/central")
|
||||
maven("https://maven.aliyun.com/repository/gradle-plugin")
|
||||
maven("https://developer.huawei.com/repo/")
|
||||
google()
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
@@ -25,6 +26,7 @@ plugins {
|
||||
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
|
||||
id("com.android.application") version "9.0.1" apply false
|
||||
id("org.jetbrains.kotlin.android") version "2.3.20" apply false
|
||||
id("com.huawei.agconnect") version "1.9.1.301" apply false
|
||||
}
|
||||
|
||||
include(":app")
|
||||
|
||||
Reference in New Issue
Block a user