# multi-chain **Repository Path**: bread-cheese/multi-chain ## Basic Information - **Project Name**: multi-chain - **Description**: 多链app - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-04 - **Last Updated**: 2025-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 🌍 环境配置 1. 安装 [node.js LTS 版本(>= 16)](https://nodejs.org/en/) 2. 安装 [yarn 包管理工具](https://yarnpkg.com/) 4.1.0 版本。 3. 安装 [git lfs](https://git-lfs.github.com/)(部分二进制文件在拉取和更新时需要) 4. 启动 iOS 项目需确保本地 XCode 版本大于等于 13.3 5. 启动 Android 项目需确保本地 JDK 版本大于等于 17 通过 git 命令行工具拉取最新的代码之后,通过 `yarn` 命令在根目录安装项目依赖 安装所有 JS 依赖及子模块依赖 ``` yarn ``` ## 🛠 开发 在根目录执行以下命令,从而开发不同的业务代码 - `yarn app:web`: 开发网页模式,会启动静态服务器在本地 3000 端口 - `yarn app:ios`: 通过 USB 连接 iphone 设备进行开发调试 - `yarn app:android`: 调试安卓 - `yarn desktop`: 开发桌面端模式 - `yarn ext`: 开发浏览器插件 ### Android 项目配置 #### 第一种方式:适用于社区开发人员 在 `apps/android/lib-keys-secret/src/main/cpp/keys.c` 中配置相关 key,也可以使用默认选项。可能一些 API 会有限制。 #### 第二种方式:适用于官方开发人员 1. 前往加密仓库获取 `debug.keystore` 文件,放入 `apps/android/keystores` 目录中,没有该目录请自行创建。 2. 前往加密仓库获取 `keys.secret` 文件,放入 `apps/android` 目录中。 ## 🗂 多仓库目录结构 仓库使用 monorepo 模式进行组织,在保证不同端的代码集中且互相不影响的大前提下,又尽可能的在打包和编译过程中让代码复用 - `packages/components` 存放 UI 组件 - `packages/kit` 存放可复用页面级别 UI 内容 - `apps` APP 代码 - `apps/desktop` 桌面端 electron 代码 - `apps/web` 网页端代码 - `apps/ext` 插件端代码 ## 🧲 安装依赖 `packages/` 目录下的每一个子目录即一个独立的项目,对应在 monorepo 名称即为对应目录中 **package.json** 的 `name` 字段的值。 当需要给某一个子目录安装依赖时,只需要使用 `yarn workspace @onekeyhq/web add axios`。通过 `yarn workspace @onekeyhq/web` 这样的前缀,最终可以在根目录把 axios 模块安装到 web 这个子项目当中。 部分依赖有原生部分,所以执行安装完 JS 依赖后需要进入 `apps/ios` 目录下执行 `pod install`。 ## 😷 常见问题 1. app 无法启动及各类环境启动问题 任何启动阶段的环境,模块及依赖问题,都推荐先使用根目录下命令 `yarn clean`。命令中会清除所有子依赖,同时清除 yarn 的模块缓存,metro / babel 等工具缓存,之后重新启动项目尝试。 2. yarn 安装依赖过程中或新增依赖时,提示 **error An unexpected error occurred: "expected workspace package to exist for** 参考 https://github.com/yarnpkg/yarn/issues/7807,通过命令 `yarn policies set-version 1.18.0` 设置当前环境 yarn 版本为 1.18.0 运行之前 export NODE_OPTIONS="--max_old_space_size=8192" export KEY_SECRET="Y29uc3QgY2hhciBsaXRlSW5pdEdQQ1BhcmFtc1tdID0gIntcInNjaURpZFwiOlwiMTEwN1wiLFwia2V5VXNhZ2VcIjpcIjNDXCIsXCJrZXlUeXBlXCI6XCI4OFwiLFwia2V5TGVuZ3RoXCI6MTYsXCJob3N0SWRcIjpcIjgwXCIsXCJjcnRcIjpcIjIwXCIsXCJza1wiOlwiQjZcIixcImNhcmRHcm91cElEXCI6XCIwMTAyMDMwNFwifSI7CgpjaGFyICpnZXREZWNyeXB0ZWRLZXkoY2hhciAqcGFyYW1zLCBzaXplX3Qgc2l6ZSkgewogICAgcmV0dXJuIHN0cmR1cChsaXRlSW5pdEdQQ1BhcmFtcyk7Cn0=" 打包命令 Android: cd apps/mobile/android/ ./gradlew aR IOS:(需要配置证书) cd apps/mobile/ eas build --profile production --platform ios --local ABB: cd apps/mobile/android/ ./gradlew bundleRelease 错误合集: <--- Last few GCs ---> [44967:0x118008000] 26783 ms: Scavenge 2008.4 (2067.5) -> 2008.1 (2078.5) MB, 4.00 / 0.00 ms (average mu = 0.632, current mu = 0.365) allocation failure; [44967:0x118008000] 26794 ms: Scavenge 2015.0 (2078.5) -> 2014.8 (2079.5) MB, 3.21 / 0.00 ms (average mu = 0.632, current mu = 0.365) allocation failure; [44967:0x118008000] 27128 ms: Scavenge 2015.8 (2079.5) -> 2015.1 (2102.5) MB, 333.08 / 0.00 ms (average mu = 0.632, current mu = 0.365) allocation failure; 内存不足 执行:export NODE_OPTIONS="--max_old_space_size=8192" Unbound variable "KEY_SECRET" 执行:export KEY_SECRET="Y29uc3QgY2hhciBsaXRlSW5pdEdQQ1BhcmFtc1tdID0gIntcInNjaURpZFwiOlwiMTEwN1wiLFwia2V5VXNhZ2VcIjpcIjNDXCIsXCJrZXlUeXBlXCI6XCI4OFwiLFwia2V5TGVuZ3RoXCI6MTYsXCJob3N0SWRcIjpcIjgwXCIsXCJjcnRcIjpcIjIwXCIsXCJza1wiOlwiQjZcIixcImNhcmRHcm91cElEXCI6XCIwMTAyMDMwNFwifSI7CgpjaGFyICpnZXREZWNyeXB0ZWRLZXkoY2hhciAqcGFyYW1zLCBzaXplX3Qgc2l6ZSkgewogICAgcmV0dXJuIHN0cmR1cChsaXRlSW5pdEdQQ1BhcmFtcyk7Cn0=" 错误: Execution failed for task ':react-native-webview-cleaner:verifyReleaseResources'. > A failure occurred while executing com.android.build.gradle.tasks.VerifyLibraryResourcesTask$Action > Android resource linking failed ERROR: /Users/fan/Downloads/NPay-5.4.0/node_modules/react-native-webview-cleaner/android/build/intermediates/merged_res/release/values/values.xml:2723: AAPT: error: resource android:attr/lStar not found. 修改react-native-webview-cleaner 的sdk版本