InternalAppStore 是一个开源项目,旨在为 Android 应用提供一个内部分发平台。它具备应用版本管理、权限控制、用户管理等功能,可以帮助企业更好地管理和分发内部应用。通过 InternalAppStore,用户可以建立一个私有的应用市场,实现应用的统一管理和分发。
特性
- 公开或私有访问: 可以选择公开或私有访问应用商店。
- 用户角色: 支持匿名用户和已验证用户。
- 账户限制: 仅管理员具有写入权限。
- 多应用管理: 可以管理多个应用程序。
- 新应用通知: 当有新应用上传时,会收到通知。
- 应用描述: 支持 HTML 格式的应用描述。
- 快捷操作: 提供常用的快捷操作。
- 多版本管理: 可以管理应用程序的多个版本。
- 新版本通知: 当有新版本发布时,会收到通知。
- 上传 APK 文件: 可以上传 APK 文件。
- 外部链接: 可以提供外部链接到应用下载页面。
- 变更日志: 支持 HTML 格式的变更日志。
- APK 文件缓存: 缓存 APK 文件,提高下载速度。
安装
需求
- Android Studio
- Firebase 账号
- Firebase 命令行界面 (CLI)
配置
- 应用 ID: 替换
app/build.gradle
文件中的applicationId
为您自己的唯一 ID。 - 创建 Firebase 项目: 前往 https://console.firebase.google.com 创建一个 Firebase 项目。
- 添加 Firebase 到应用: 选择“将 Firebase 添加到您的 Android 应用”,并填写相关表单。
- 下载配置文件: 下载配置文件
google-services.json
并将其移动到 Android 应用模块的根目录。 - 启用登录方式: 在 Firebase 身份验证页面,启用登录方式,然后创建您的第一个管理员用户。
- 添加 Firebase 到 Web 应用: 在 Firebase 项目设置中,选择“添加应用”,然后将 Firebase 添加到您的 Web 应用。
- Web SDK 自动配置: 使用 Firebase 托管 (Hosting) 和 CLI 时,Web SDK 会自动配置。
- 验证配置:
- Android: Store.kt
- Web: index.js
- Firebase 数据库: 使用您的域名
database-private.rules.json
(读取权限)- 数据库架构
- Firebase 存储: 使用您的域名
storage-private.rules
(图片)storage-private.rules
(apks)- 存储架构
初始化
- 初始化 Firebase 模块: 在您的项目中初始化 Firebase 模块。
- 登录 Firebase:
- 切换到 Firebase 根目录:
cd firebase
- 登录 Firebase (登录弹窗):
firebase login
- 设置默认 Firebase 项目:
firebase use --add
- 切换到 Firebase 根目录:
-
添加管理员用户:
- 添加您的第一个管理员用户 (UID 可在 Firebase 身份验证页面找到)
-
Firebase 数据库,添加管理员 UID:
firebase database:update /admins --data '{"<admin-uid>" : "<admin-email>"}'
- 注意:Windows 系统可能需要创建 JSON 文件,因为不支持 JSON 输入 (此方法不受支持)。 ```
firebase database:update /admins update.json
- 注意:Windows 系统可能需要创建 JSON 文件,因为不支持 JSON 输入 (此方法不受支持)。 ```
- Firebase 存储,添加管理员 UID:
- 编辑
storage-private.rules
文件 (图片) - 编辑
storage-private.rules
文件 (apks)
- 编辑
部署
- 测试 Web 应用: 在您的机器上测试 Web 应用:
http://localhost:5000
firebase serve
- 部署所有 Firebase 模块: 部署所有 Firebase 模块 (数据库、存储、托管、函数):
firebase deploy
- 同步、构建和安装 Android 模块: 使用 Android Studio 同步、构建和安装 Android 模块。