app分发平台源码|开源应用分发搭建

配置分发平台

要允许 Android 上的app分发平台使用凭据,services必须在项目上启用该插件。这需要修改Android目录中的两个文件。

演示:s.appwin.top

首先,将services插件添加为文件中的依赖项/android/build.gradle:

buildscript { dependencies { // ... other dependencies classpath 'com.gms:services:4.3.12' // Add me --- /\ } }

最后,通过将以下内容添加到/android/app/build.gradle文件中来执行插件:
apply plugin: 'com.android.application' apply plugin: 'com.gms.services' // <- Add this line

iOS 设置

为了让 iOS 应用安全地连接到您的app分发平台项目,必须下载配置文件并将其添加到您的项目中,并且您必须在 CocoaPods 中启用框架

生成 iOS 凭据

在app分发平台控制台上,添加一个新的 iOS 应用程序并输入您的项目详细信息。“iOS 捆绑包 ID”必须与您的本地项目捆绑包 ID 匹配。使用 Xcode 打开项目时,可以在“常规”选项卡中找到捆绑 ID。

下载Service-Info.plist文件。

使用 Xcode,打开项目/ios/{projectName}.xcodeproj文件(或者/ios/{projectName}.xcworkspace如果使用 Pods)。

右键单击项目名称和“添加文件”到项目中,如下所示:

通过 Xcode 添加文件

从您的计算机中选择下载的GoogleService-Info.plist文件,并确保启用“如果需要,复制项目”复选框。

选择“如果需要,复制项目”

使用 iOS 凭据配置分发平台

要允许 iOS 上的app分发平台使用凭据,必须在应用程序的引导阶段配置app分发平台iOS SDK。

为此,请打开您的/ios/{projectName}/AppDelegate.m文件,并添加以下内容:

在文件顶部,导入app分发平台SDK:

#import

在您现有的didFinishLaunchingWithOptions方法中,将以下内容添加到方法的顶部:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Add me --- \/ [App configure]; // Add me --- /\ // ... }

改变 CocoaPods 以使用框架

从 ios-sdk v9+ (react-native v15+) 开始,您必须告诉 CocoaPods 使用框架。

打开文件./ios/Podfile并在目标中添加这一行:

use_frameworks!

要在 iOS 上使用静态框架,您还需要为项目手动启用此功能,并在/ios/Podfile文件顶部使用以下全局代码:

$RNFirebaseAsStaticFramework = true

Expo 用户可以使用expo-build-properties来开启use_frameworks. 我们不确定 Expo 用户如何将变量添加到 Podfile,并且可能需要社区对此处的配置插件做出贡献!

Noteuse_frameworks 与Flipper、Hermes、React Native New Architecture 或 react-native 0.69.0不兼容。已经有一个可用于 0.69.0 的补丁包补丁,使其可以在有和没有 Hermes 的情况下工作,它将与 0.69.1 一起发布。欢迎社区支持以帮助修复use_frameworks对 Hermes 和 New Architecture 的支持!

4. 自动链接和重建

完成上述步骤后,必须将app分发平台源码库链接到您的项目,并且需要重新构建您的应用程序。

React Native 0.60+的用户自动可以访问“自动链接”,不需要进一步的手动安装步骤。要自动链接包,请重建您的项目:
# Android apps npx react-native run-android# iOS apps cd ios/ pod install --repo-update cd .. npx react-native run-ios

成功链接和重建后,您的应用程序将使用该@react-native/app模块连接到 Firebase。该模块没有提供太多功能,因此要使用其他app分发平台服务,各个app分发平台服务的每个模块都需要单独安装。

手动链接

如果您使用的是不支持自动链接的旧版本的 React Native,或者希望集成到现有项目中,您可以按照iOS和Android的手动安装步骤进行操作。

各种各样的

Android 启用 Multidex

随着您的应用程序开始随着更多本机依赖项而增长,您的构建可能会开始失败并出现常见 Execution failed for task ':app:mergeDexDebug'错误。当 Android 达到 64k 方法限制时会发生此错误。

一种常见的解决方案是为 Android启用 multidex支持。这是解决问题的常用解决方案,但建议您阅读 Android 文档以了解它可能如何影响您的应用程序。

Hermes支持

要支持Hermes JavaScript 引擎,需要 React Native 0.64.0 或更高版本。但是,我们不能保证app分发平台源码可以在上面完美运行,所以请仔细测试您的项目。

覆盖本机 SDK 版本

React Nativeapp分发平台在内部设置每个模块使用的原生 SDK 的版本。该库的每个版本都针对一组固定的 SDK 版本(例如app分发平台SDK)进行了测试,让我们确信该库支持的每个功能都按预期工作。

有时需要更改这些版本才能很好地与其他 React Native 库配合使用;因此我们允许手动覆盖这些原生 SDK 版本。

通常不建议使用您自己的 SDK 版本,因为它可能会导致应用程序发生重大更改。谨慎行事。

安卓

在您的项目 /android/build.gradle 文件中,通过指定如下所示的任何选项来提供您自己的版本:
project.ext { set('react-native', [ versions: [ // Overriding Build/Android SDK Versions android : [ minSdk: 19, targetSdk : 31, compileSdk: 31, buildTools: "31.0.0" ],// Overriding Library SDK Versions firebase: [bom: "30.2.0" ], ], ]) }

更改后,使用npx react-native run-android.

iOS

打开您的项目/ios/Podfile并将下面显示的任何全局变量添加到文件顶部:

$FirebaseSDKVersion = '9.2.0'

更改后,通过 pod install 重新安装您的项目 pod 并使用npx react-native run-ios.

增加 Android 构建内存

随着您添加更多app分发平台模块,对 Android 构建系统的需求非常惊人,默认内存设置将不起作用。为避免OutOfMemory在 Android 构建期间出现错误,您应该取消注释存在于以下位置的备用 Gradle 内存设置/android/gradle.properties:
# Specifies the JVM arguments used for the daemon process.# The setting is particularly useful for tweaking memory settings.# Default value: -Xmx10248m -XX:MaxPermSize=256morg.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

【app分发平台源码|开源应用分发搭建】安卓性能

在 Android 上,React Nativeapp分发平台使用线程池执行器来提供改进的性能和托管资源。firebase.json为了提高吞吐量,您可以通过项目根目录中的文件调整线程池执行器:
// /firebase.json { "react-native": { "android_task_executor_maximum_pool_size": 10, "android_task_executor_keep_alive_seconds": 3 } }

    推荐阅读