RORK LABEN
MAX — Rork Maxが全Appleプラットフォーム向けのネイティブSwiftを生成。iPhoneからVision Proまで対応しますNATIVE — AR/LiDAR・Metalの3D・Dynamic Island・Live Activities・HealthKitなどネイティブ機能に踏み込めますPUBLISH — 2クリックでApp Storeへ公開できます。Rork Maxは月$200ですEXPO — 通常のRorkはReact Native(Expo)でiOS/Androidを同時生成し、無料から始められますPROMPT — プレーンな英語でアプリの構想を書くと、ストアへ配布できる動くコードが生成されますPRICE — 無印Rorkの有料プランは月$25から。まず無印で作り、ネイティブ機能が要る段でMaxを検討できますMAX — Rork Maxが全Appleプラットフォーム向けのネイティブSwiftを生成。iPhoneからVision Proまで対応しますNATIVE — AR/LiDAR・Metalの3D・Dynamic Island・Live Activities・HealthKitなどネイティブ機能に踏み込めますPUBLISH — 2クリックでApp Storeへ公開できます。Rork Maxは月$200ですEXPO — 通常のRorkはReact Native(Expo)でiOS/Androidを同時生成し、無料から始められますPROMPT — プレーンな英語でアプリの構想を書くと、ストアへ配布できる動くコードが生成されますPRICE — 無印Rorkの有料プランは月$25から。まず無印で作り、ネイティブ機能が要る段でMaxを検討できます
記事一覧/開発ツール
開発ツール/2026-06-21中級

Xcode を介さない公開で抜け落ちる事前確認を、自分で取り戻す

Rork Max の2クリック公開は Xcode の Organizer を通らないぶん、用途文言・バージョン・Bundle ID の取りこぼしに気づきにくくなります。提出前に自分でできる自己点検の手順を、生成物の読み方つきで具体的に整理しました。

Rork432Rork Max179Info.plist5個人開発159リリース7

Rork Max の2クリック公開を初めて使ったとき、便利さと同時に少し落ち着かない気持ちもありました。これまで Xcode の Organizer でアーカイブを開き、提出前に中身を一度目で確かめていた工程が、まるごと省かれるからです。送信は速くなりましたが、その分「何を送ったのか」を自分で確認する機会も消えています。

省かれた確認の多くは、不具合ではなく取りこぼしを防ぐためのものでした。用途の説明文言が一つ欠けている、バージョンを上げ忘れている、Bundle ID が前のアプリのまま残っている。こうした小さなズレは、Xcode 時代なら提出前にふと目に入りました。2クリックではそこを通らないので、自己点検を自分の手順として持ち直す必要があります。今回は、提出前に短時間でできる自己点検を、生成物のどこを見るかとあわせて整理します。

なぜ提出後に気づくと高くつくのか

取りこぼしの怖いところは、ビルドが成功してしまう点です。コンパイルは通り、2クリックで送信も完了し、見た目には何も問題がありません。引っかかるのは数時間後の審査か、最悪は公開後のユーザー報告です。提出から発覚までの距離が長いほど、修正の往復コストが膨らみます。

私の感覚では、提出前の自己点検に数分かけるのは、審査差し戻しの待ち時間を一度でも防げれば十分に元が取れます。とくに用途文言の欠落は審査で弾かれやすく、しかも提出前に機械的に検出できる種類のミスです。直前の数分を惜しまない、という割り切りが効きます。

用途の説明文言が全部そろっているか

iOS は、カメラや位置情報など端末機能を使うとき、その理由を説明する文言(Purpose String)を要求します。Rork が生成する設定にこの文言が欠けたまま機能だけ実装されていると、実行時にクラッシュするか、審査で指摘されます。

提出前に、使っている機能と説明文言が一対一で揃っているかを点検します。Expo 系の Rork なら設定ファイルから、Swift ネイティブの Rork Max なら Info.plist から確認できます。

# Rork(Expo) の生成設定から、用途文言キーを一覧する
# app.json / app.config.* のどちらでも拾えるように両方見る
grep -REo 'NS[A-Za-z]+UsageDescription' app.json app.config.* ios/ 2>/dev/null | sort -u
 
# Rork Max(Swift) の場合は Info.plist を直接見る
plutil -p ios/*/Info.plist 2>/dev/null | grep -i "UsageDescription"

出てきたキーの一覧と、アプリが実際に使う機能を突き合わせます。たとえば写真保存があるのに NSPhotoLibraryAddUsageDescription が無ければ、そこが穴です。私は機能を一つ足すたびに、対応する文言を同時に入れる癖をつけていますが、それでも公開直前にこの一覧を一度出して目視するようにしています。実装と設定は別ファイルなので、片方だけ進むことがどうしても起きるからです。

バージョンと Bundle ID の取り違え

二本目以降のアプリを出すときに増えるのが、バージョンの据え置きと Bundle ID の使い回しです。Xcode の Organizer なら提出画面にバージョンが大きく出るので気づけましたが、2クリックでは流れの中で見落としがちです。

確認すべきは二つです。表示バージョン(ユーザーに見える番号)と、ビルド番号(同一バージョン内で増やす内部番号)。App Store Connect は、同じビルド番号の再提出を受け付けません。

# 表示バージョンとビルド番号を一度に確認する
# Expo: app.json の version と ios.buildNumber
grep -E '"version"|"buildNumber"' app.json
 
# Swift ネイティブ: Info.plist の CFBundleShortVersionString と CFBundleVersion
plutil -p ios/*/Info.plist 2>/dev/null | grep -E "CFBundleShortVersionString|CFBundleVersion|CFBundleIdentifier"

Bundle ID は、テンプレートや過去プロジェクトを下敷きにすると前のアプリの値が残りやすい箇所です。私自身、個人開発で似た構成のアプリを続けて作ったとき、Bundle ID が一本前のままで、App Store Connect 側の登録と食い違って提出が止まったことがあります。提出前に、ここがこのアプリ固有の値になっているかを必ず一度見ます。

自己点検を一つのコマンドにまとめる

毎回これらを手で打つと、忙しいときほど省略してしまいます。私は提出前点検を一つのスクリプトにまとめて、公開ボタンを押す前に必ず走らせるようにしています。

#!/usr/bin/env bash
# presubmit-check.sh — 公開前に最低限を機械点検する
set -euo pipefail
 
echo "== 用途文言 =="
grep -REo 'NS[A-Za-z]+UsageDescription' app.json app.config.* ios/ 2>/dev/null | sort -u \
  || echo "(設定が見つかりません。パスを確認してください)"
 
echo "== バージョン / Bundle ID =="
grep -E '"version"|"buildNumber"' app.json 2>/dev/null || true
plutil -p ios/*/Info.plist 2>/dev/null \
  | grep -E "CFBundleShortVersionString|CFBundleVersion|CFBundleIdentifier" || true
 
echo "== 確認事項 =="
echo "[ ] 使う機能ぶんの用途文言がそろっているか"
echo "[ ] 表示バージョンを前回から上げたか"
echo "[ ] Bundle ID がこのアプリ固有か"

スクリプトにする利点は、点検が「やる/やらない」の判断から外れることです。公開フローの一部に組み込んでしまえば、急いでいても抜けません。Dolice Labs で複数アプリを並行で出していても、この一本を全アプリで共有しているので、新しいアプリでも点検の質が一定に保てます。

2クリック公開が省いてくれたのは手間であって、確認の必要性そのものではありません。省かれた目視を、機械的な自己点検として自分の側に持ち直す。次に Rork Max で公開する前に、まず用途文言の一覧を一度出力してみてください。穴がないと分かるだけで、公開ボタンを押す手が軽くなるはずです。

シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

開発ツール2026-06-20
一つの構想を全 Apple プラットフォームへ広げる前に決めること
Rork Max は一つの構想から iPhone・iPad・Apple Watch・Apple TV・Vision Pro 向けのネイティブ Swift を生成できます。でも「全部に出せる」と「全部に出すべき」は別物です。どのデバイスを選び、どれを見送るかを、運用コストと利用文脈から逆算する判断の枠組みを、個人開発で複数アプリを回してきた立場から共有します。
開発ツール2026-06-20
Rork が直せるバグと自分で直すバグを見分ける — エクスポートコードのトリアージ手順
Rork が自力で直すバグと、エクスポートしたReact Native/Expoコードを自分で手当てすべきバグを切り分けるトリアージ手順を、動くコードとともに整理しました。
開発ツール2026-06-18
Rork で出したアプリにオフライン優先を後付けする — 永続キャッシュと書き込みキューの設計
地下鉄でアプリを開いたら真っ白、というレビューが続きました。エラー画面を整えるだけでは足りず、Rork が出した Expo アプリに TanStack Query の永続キャッシュとオフライン書き込みキューを後付けした記録です。楽観的更新・再接続フラッシュ・再生成で消さない隔離まで実装込みで整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →