1k-platform-requirements について
OneKey app-monorepo の開発者向けに、デバイス互換性と開発環境の要件をまとめたガイドです。OS ごとの確認方法と、ツールおよび各プラットフォームの最低バージョンを示します。
主な機能
- 01OS に応じた環境チェック
- 02開発ツールの必須バージョン一覧
- 03プラットフォーム最低バージョンの整理
- 04バージョン確認コマンドの提示
活用シーン
- 01デバイスで app-monorepo を実行できるか確認
- 02Android と iOS のビルド環境を検証
- 03ブラウザー拡張機能の最低バージョンを確認
- 04Electron デスクトップの OS 互換性を評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ onekeyhq/ app-monorepo --skill 1k-platform-requirementsインストール後、Claude Code で/1k-platform-requirementsを入力して読み込まれたか確認します。
詳細
OneKey プラットフォーム要件
デバイスの互換性チェック
ユーザーからデバイスで app-monorepo を実行できるか尋ねられた場合は、環境チェックを実行して、必要なすべてのツールが正しいバージョンでインストールされていることを確認してください。
重要:Xcode、CocoaPods、Ruby は iOS 開発に必要な macOS 専用のツールです。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 ワールドへのインジェクションに必要 |
| Firefox 拡張機能 | 最新の安定版 | Chrome manifest v2 に準拠 |
| デスクトップ(Electron) | Electron 39.x | 以下の OS 要件を参照 |
| 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を参照します- 値は
ExpoRootProjectPlugin.ktのexpo-modules-autolinkingによって設定されます - 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 ワールドへのコンテンツスクリプトのインジェクション(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 の OS 要件:
- macOS:10.15 以降(Catalina)
- Windows:Windows 10 以降
- Linux:Ubuntu 20.04 以降、Fedora 32 以降、Debian 10 以降
参照先:OS の互換性については、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:メジャーバージョンの更新によって OS のサポートが終了する場合があります。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 以降が必要です。プロジェクトでは Kotlin のコンパイルに jvmTarget = "17" を使用しています。
場所: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 には、SDK 36 に対応した Android Studio が必要です。
確認方法:Android Studio > 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)"
スマートチェック(OS を自動検出)
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