自然な言葉で頼んだ操作をOnlySwitchの内蔵機能に対応付けて実行します。macOSでスリープ防止やダークモードの切り替え、ごみ箱の消去などを呼び出せます。
- スリープ防止を切り替えたいとき
- ダークモードを切り替えたいとき
- ごみ箱を空にしたいとき
AppleのApp Store審査ガイドラインに沿ってアプリのコードを点検します。課金や個人情報、ログインなどを確認し、申請前に却下につながり得る問題を洗い出します。
Evaluates code against Apple's App Store Review Guidelines. Use this skill when reviewing iOS, macOS, tvOS, watchOS, or visionOS app code (Swift, Objective-C, React Native, or Expo) to identify potential App Store rejection issues before submission. Triggers on tasks involving app review preparation, compliance checking, or App Store submission readiness.
AppleのApp Store審査ガイドラインを基準に、アプリのコードから申請時の問題候補を探します。安全性、動作や機能の完成度、ビジネスモデル、デザイン、法的事項の5分野を扱います。個人情報の収集、アプリ内課金、サブスクリプション、ログイン、アカウント削除、ユーザー投稿の管理などを、ルール別の資料やチェックリストに沿って確認します。
初めての申請準備や、既存アプリの点検に向いています。課金や利用者データを扱う機能を追加するときにも、審査で懸念になり得る実装を見直せます。資料では問題をリスク別に分類し、確認項目とコード例を示しています。
対象はiOS、macOS、tvOS、watchOS、visionOSで、Swift、Objective-C、React Native、Expoに対応します。資料の基準日は2026年6月8日のガイドライン更新です。ライセンスはMITです。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Comprehensive guide for evaluating iOS, macOS, tvOS, watchOS, and visionOS app code against Apple's App Store Review Guidelines. This skill covers EVERY guideline point to identify potential rejection issues before submission.
Supports: Swift, Objective-C, React Native, and Expo apps
Guidelines current through: Apple's June 8, 2026 App Review Guidelines update.
Use this skill when:
Read individual rule files for detailed explanations, checklists, and code examples:
| Section | File | Key Topics |
|---|---|---|
| 1. Safety | rules/1-safety.md | Objectionable content, UGC moderation, Kids Category, physical harm, data security |
| 2. Performance | rules/2-performance.md | App completeness, metadata accuracy, hardware compatibility, software requirements |
| 3. Business | rules/3-business.md | In-app purchase, subscriptions, cryptocurrencies, other business models |
| 4. Design | rules/4-design.md | Copycats, minimum functionality, spam, extensions, Apple services, login |
| 5. Legal | rules/5-legal.md | Privacy, data collection, intellectual property, gambling, VPN, MDM, developer code of conduct |
| Risk Level | Category | Section | Common Rejection Reasons |
|---|---|---|---|
| CRITICAL | Privacy & Data | 5.1 | Missing privacy policy, unauthorized data collection |
| CRITICAL | Payments | 3.1 | Bypassing in-app purchase, unclear pricing |
| HIGH | Safety | 1.x | Objectionable content, inadequate UGC moderation |
| HIGH | Performance | 2.x | Crashes, incomplete features, deprecated APIs |
| MEDIUM | Design | 4.x | Copycat apps, minimum functionality issues |
| MEDIUM | Legal | 5.x | IP violations, gambling without license |
Swift:
// 🔴 Private API usage
let selector = NSSelectorFromString("_privateMethod")
// 🔴 Hardcoded secrets
let apiKey = "sk_live_xxxxx"
// 🔴 External payment for digital goods
func purchaseDigitalContent() {
openStripeCheckout() // Use StoreKit instead
}
React Native / Expo:
// 🔴 Hardcoded secrets in JS bundle
const API_KEY = 'sk_live_xxxxx'; // REJECTION
// 🔴 External payment for digital goods
Linking.openURL('https://stripe.com/checkout'); // Use react-native-iap
// 🔴 Dynamic code execution
eval(downloadedCode); // REJECTION
// 🔴 Major feature changes via CodePush/expo-updates
// OTA updates for bug fixes only, not new features!
Swift:
// 🟡 Missing ATT when using ad SDKs
import FacebookAds // Without ATTrackingManager
// 🟡 Account creation without deletion
func createAccount() { } // But no deleteAccount()
React Native / Expo:
// 🟡 Missing ATT (use expo-tracking-transparency)
import analytics from '@react-native-firebase/analytics';
analytics().logEvent('event'); // Without ATT prompt = REJECTION
// 🟡 Account deletion via website only
Linking.openURL('https://example.com/delete'); // Must be in-app!
// 🟡 Social login without a privacy-preserving alternative (4.8)
<GoogleSigninButton /> // Also offer a login meeting 4.8 criteria
// (Sign in with Apple is the simplest option)
// 🟡 Custom review prompts (5.6.1)
showCustomAlert('Rate us 5 stars!'); // Use StoreReview.requestReview()
// 🟠 Vague purpose strings in Info.plist
"This app needs camera access" // Be specific!
// 🟠 WebView-only app (insufficient native functionality)
const App = () => <WebView source={{ uri: 'https://site.com' }} />;
// 🟠 References to Android in iOS app
const text = "Also available on Android"; // REJECTION
// 🟠 console.log in production
console.log('debug'); // Remove or wrap in __DEV__
まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
自然な言葉で頼んだ操作をOnlySwitchの内蔵機能に対応付けて実行します。macOSでスリープ防止やダークモードの切り替え、ごみ箱の消去などを呼び出せます。
Swiftの非同期・並行処理をレビューし、共有データの扱い、タスクの構成、キャンセルなどを点検。問題箇所と修正前後のコード、対応の優先順位を示します。
Swift Testingを使う単体・結合テストの作成とレビューを支援します。非同期処理や検証方法を点検し、XCTestからの移行にも対応します。
SwiftUIのコードを読み、古いAPIやデータの受け渡し、画面構成、操作のしやすさ、性能を点検。問題のある箇所と修正前後のコードをファイル別に示します。
仕様や要件を、変更ファイル・実装コード・テスト手順まで含む実装計画にまとめます。作業を小さく分け、コードを書き始める前の準備や引き継ぎに使えます。