关于 1k-platform-requirements
为 OneKey app-monorepo 开发者提供设备兼容性与开发环境检查指南。它列出工具版本和各平台最低要求,并说明如何按操作系统核验。
主要功能
- 01按操作系统检查环境
- 02列出开发工具版本要求
- 03汇总平台最低版本
- 04提供版本核验命令
适用场景
- 01确认设备能否运行 app-monorepo
- 02检查 Android 与 iOS 构建环境
- 03核对浏览器扩展最低版本
- 04评估 Electron 桌面系统兼容性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ onekeyhq/ app-monorepo --skill 1k-platform-requirements安装后在 Claude Code 中输入/1k-platform-requirements确认已加载。
详细介绍
OneKey 平台要求
设备兼容性检查
当用户询问其设备是否可以运行 app-monorepo 时,运行环境检查,确认所有必需工具均已安装且版本正确。
重要:Xcode、CocoaPods 和 Ruby 是 仅限 macOS 的工具,是 iOS 开发所必需的。在非 macOS 系统上,跳过这些检查。
自动检测并检查环境
首先,检测操作系统:
uname -s
- 如果输出为
Darwin→ macOS,检查所有工具,包括 Xcode/CocoaPods - 如果输出为
Linux或其他值 → 跳过 Xcode/CocoaPods/Ruby 检查
开发环境要求
| 工具 | 所需版本 | 检查方法 | 平台 |
|---|---|---|---|
| Node.js | >=22 | node -v | 所有平台 |
| Yarn | 4.12.0 | yarn -v | 所有平台 |
| Java/JDK | 17+ | java -version | 所有平台 |
| Gradle | 8.13 | ./gradlew --version | 所有平台 |
| Go | 1.24.0 | go version | 所有平台 |
| Ruby | 2.7+(推荐 3.x) | ruby -v | 仅限 macOS |
| CocoaPods | 1.16.2 | pod --version | 仅限 macOS |
| Xcode | 26.2 | xcodebuild -version | 仅限 macOS |
| Android Studio | Ladybug (2024.2.1)+ | Android Studio > About | 所有平台 |
最低平台版本摘要
| 平台 | 最低版本 | 备注 |
|---|---|---|
| Android | API 24 (Android 7.0 Nougat) | 由 Expo SDK 设置 |
| iOS | 15.5 | 部署目标 |
| Chrome 扩展 | Chrome 111+ | MAIN world 注入所需 |
| Firefox 扩展 | 最新稳定版 | 遵循 Chrome manifest v2 |
| 桌面端(Electron) | Electron 39.x | 请参阅下方的操作系统要求 |
| macOS | 10.15+ (Catalina) | Electron 39 要求 |
| Windows | Windows 10+ | Electron 39 要求 |
| Linux | Ubuntu 20.04+ | Electron 39 要求 |
如何验证/更新版本
Android minSdkVersion
位置:由 Expo 设置,引用于 apps/mobile/android/app/build.gradle:142
如何检查当前值:
cd apps/mobile/android && ./gradlew -q properties 2>&1 | grep -i "minSdk"
配置链:
apps/mobile/android/app/build.gradle引用rootProject.ext.minSdkVersion- 值由
expo-modules-autolinking在ExpoRootProjectPlugin.kt中设置 - 除非在 expo 版本目录中覆盖,否则默认为 24
iOS 部署目标
位置:apps/mobile/ios/Podfile:18
如何检查:
grep "platform :ios" apps/mobile/ios/Podfile
配置:
platform :ios, podfile_properties['ios.deploymentTarget'] || '15.5'
也可以在 Xcode 项目中验证:
grep "IPHONEOS_DEPLOYMENT_TARGET" apps/mobile/ios/OneKeyWallet.xcodeproj/project.pbxproj | head -5
Chrome 扩展最低版本
位置:apps/ext/src/manifest/chrome_v3.js:9
如何检查:
grep "minimum_chrome_version" apps/ext/src/manifest/chrome_v3.js
注意:MAIN world 内容脚本注入(manifest v3 功能)要求版本为 111+。
Firefox 扩展
位置:apps/ext/src/manifest/firefox.js
Firefox manifest 扩展自 Chrome manifest,但可能有不同的要求。目前遵循 Chrome manifest v2 模式。
桌面端(Electron)版本
位置:apps/desktop/package.json
如何检查:
grep '"electron":' apps/desktop/package.json
当前版本:Electron 39.5.1
Electron 39 操作系统要求:
- macOS:10.15+ (Catalina)
- Windows:Windows 10+
- Linux:Ubuntu 20.04+、Fedora 32+、Debian 10+
参考:请访问 https://releases.electronjs.org/ 查看 Electron 版本与操作系统的兼容性。
完整 SDK 版本检查命令
运行以下命令,一次查看所有 Android SDK 版本:
cd apps/mobile/android && ./gradlew -q --no-configuration-cache properties 2>&1 | grep -E "(minSdk|compileSdk|targetSdk|buildTools|ndk|kotlin):"
预期输出格式:
- buildTools: 36.0.0
- minSdk: 24
- compileSdk: 36
- targetSdk: 36
- ndk: 27.1.12297006
- kotlin: 2.1.20
更新版本时的注意事项
更新最低版本时:
- Android:Expo SDK 更新可能会更改 minSdkVersion。请查看 Expo 发行说明。
- iOS:同时更新 Podfile 和 Xcode 项目设置。
- 扩展:manifest 更改会影响所有 Chromium 浏览器(Chrome、Edge、Brave、Opera)。
- Electron:主版本升级可能会移除对某些操作系统的支持。请查看 Electron 发行说明。
开发环境详情
Node.js
要求:>=22
位置:package.json:10-12
如何检查配置:
grep -A2 '"engines"' package.json
配置:
"engines": {
"node": ">=22"
}
Yarn
要求:4.12.0(Yarn Berry / Yarn 4)
位置:package.json:3
如何检查配置:
grep '"packageManager"' package.json
配置:
"packageManager": "[email protected]"
Java/JDK
要求:JDK 17+
原因:Gradle 8.13 要求 Java 17+。项目使用 jvmTarget = "17" 进行 Kotlin 编译。
位置:apps/mobile/android/build.gradle:101
如何检查配置:
grep "jvmTarget" apps/mobile/android/build.gradle
Gradle
要求:8.13
位置:apps/mobile/android/gradle/wrapper/gradle-wrapper.properties:3
如何检查配置:
grep "distributionUrl" apps/mobile/android/gradle/wrapper/gradle-wrapper.properties
配置:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
Ruby(仅限 macOS)
要求:2.7+(Apple Silicon 推荐使用 3.x)
平台:仅限 macOS — iOS 开发所必需
原因:CocoaPods 和 iOS 构建工具所必需。
如何检查:
ruby -v
注意:在 macOS 上,系统自带的 Ruby 可能已过时。使用 rbenv 或 rvm 管理 Ruby 版本。
CocoaPods(仅限 macOS)
要求:1.16.2
平台:仅限 macOS — iOS 开发所必需
位置:apps/mobile/ios/Podfile.lock(最后一行)
如何检查配置:
tail -1 apps/mobile/ios/Podfile.lock
如何安装:
gem install cocoapods -v 1.16.2
Go
要求:1.24.0
原因:在 iOS 上编译 gopenpgp 加密库所必需。
位置:apps/mobile/ios/Podfile:33
如何检查配置:
grep "go_version = " apps/mobile/ios/Podfile
Xcode(仅限 macOS)
要求:26.2
平台:仅限 macOS — iOS 开发所必需
原因:使用最新 SDK 功能和部署目标构建 iOS 应用所必需。
如何检查:
xcodebuild -version
注意:Xcode 版本决定了可用的 iOS SDK 和模拟器版本。
Android Studio
要求:Ladybug(2024.2.1)或更高版本
原因:compileSdk 36 要求 Android Studio 支持 SDK 36。
如何检查:Android Studio > About Android Studio
所需组件:
- Android SDK Platform 36
- Android SDK Build-Tools 36.0.0
- NDK 27.1.12297006
- CMake(用于原生模块)
快速环境检查脚本
macOS(完整检查,包含 iOS 工具)
echo "=== Development Environment Check (macOS) ===" && \
echo "OS: $(uname -s) $(uname -r)" && \
echo "Node.js: $(node -v 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Yarn: $(yarn -v 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Java: $(java -version 2>&1 | head -1 || echo 'NOT INSTALLED')" && \
echo "Go: $(go version 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Ruby: $(ruby -v 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "CocoaPods: $(pod --version 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Xcode: $(xcodebuild -version 2>/dev/null | head -1 || echo 'NOT INSTALLED')" && \
echo "Gradle (configured): $(grep 'distributionUrl' apps/mobile/android/gradle/wrapper/gradle-wrapper.properties 2>/dev/null | sed 's/.*gradle-\(.*\)-bin.zip/\1/' || echo 'N/A')"
Linux/Windows(跳过仅用于 iOS 的工具)
echo "=== Development Environment Check (Non-macOS) ===" && \
echo "OS: $(uname -s) $(uname -r)" && \
echo "Node.js: $(node -v 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Yarn: $(yarn -v 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Java: $(java -version 2>&1 | head -1 || echo 'NOT INSTALLED')" && \
echo "Go: $(go version 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Gradle (configured): $(grep 'distributionUrl' apps/mobile/android/gradle/wrapper/gradle-wrapper.properties 2>/dev/null | sed 's/.*gradle-\(.*\)-bin.zip/\1/' || echo 'N/A')" && \
echo "" && \
echo "Note: Xcode, CocoaPods, Ruby are macOS-only (required for iOS development)"
智能检查(自动检测操作系统)
if [ "$(uname -s)" = "Darwin" ]; then
echo "=== macOS Detected - Full Environment Check ===" && \
echo "Node.js: $(node -v 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Yarn: $(yarn -v 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Java: $(java -version 2>&1 | head -1 || echo 'NOT INSTALLED')" && \
echo "Go: $(go version 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Ruby: $(ruby -v 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "CocoaPods: $(pod --version 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Xcode: $(xcodebuild -version 2>/dev/null | head -1 || echo 'NOT INSTALLED')"
else
echo "=== Non-macOS Detected - Partial Check ===" && \
echo "Node.js: $(node -v 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Yarn: $(yarn -v 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Java: $(java -version 2>&1 | head -1 || echo 'NOT INSTALLED')" && \
echo "Go: $(go version 2>/dev/null || echo 'NOT INSTALLED')" && \
echo "Note: iOS development requires macOS with Xcode, CocoaPods, Ruby"
fi
相关文件
- Node/Yarn:package.json
- Android:apps/mobile/android/app/build.gradle
- Android:apps/mobile/android/gradle.properties
- Gradle:apps/mobile/android/gradle/wrapper/gradle-wrapper.properties
- iOS:apps/mobile/ios/Podfile
- iOS:apps/mobile/ios/Podfile.lock
- 扩展:apps/ext/src/manifest/chrome_v3.js
- 桌面端:apps/desktop/package.json
- 桌面端:apps/desktop/electron-builder.config.js