mcpField
1
1k-platform-requirements

1k-platform-requirements

github.com/onekeyhq开发2.5k55 次安装今天更新
代码仓库

关于 1k-platform-requirements

为 OneKey app-monorepo 开发者提供设备兼容性与开发环境检查指南。它列出工具版本和各平台最低要求,并说明如何按操作系统核验。

主要功能

  1. 01按操作系统检查环境
  2. 02列出开发工具版本要求
  3. 03汇总平台最低版本
  4. 04提供版本核验命令

适用场景

  1. 01确认设备能否运行 app-monorepo
  2. 02检查 Android 与 iOS 构建环境
  3. 03核对浏览器扩展最低版本
  4. 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>=22node -v所有平台
Yarn4.12.0yarn -v所有平台
Java/JDK17+java -version所有平台
Gradle8.13./gradlew --version所有平台
Go1.24.0go version所有平台
Ruby2.7+(推荐 3.x)ruby -v仅限 macOS
CocoaPods1.16.2pod --version仅限 macOS
Xcode26.2xcodebuild -version仅限 macOS
Android StudioLadybug (2024.2.1)+Android Studio > About所有平台

最低平台版本摘要

平台最低版本备注
AndroidAPI 24 (Android 7.0 Nougat)由 Expo SDK 设置
iOS15.5部署目标
Chrome 扩展Chrome 111+MAIN world 注入所需
Firefox 扩展最新稳定版遵循 Chrome manifest v2
桌面端(Electron)Electron 39.x请参阅下方的操作系统要求
macOS10.15+ (Catalina)Electron 39 要求
WindowsWindows 10+Electron 39 要求
LinuxUbuntu 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"

配置链:

  1. apps/mobile/android/app/build.gradle 引用 rootProject.ext.minSdkVersion
  2. 值由 expo-modules-autolinking 在 ExpoRootProjectPlugin.kt 中设置
  3. 除非在 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

更新版本时的注意事项

更新最低版本时:

  1. Android:Expo SDK 更新可能会更改 minSdkVersion。请查看 Expo 发行说明。
  2. iOS:同时更新 Podfile 和 Xcode 项目设置。
  3. 扩展:manifest 更改会影响所有 Chromium 浏览器(Chrome、Edge、Brave、Opera)。
  4. 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

相关文件

评论

支持 Markdown