RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-05-23中級

Rork Max で生成した Swift コードを Xcode で「赤いエラーだけ」消すまでの優先順序

Rork Max が生成した Swift プロジェクトを Xcode で開いたときに出る赤いエラーを、どの順序で潰すと最短で実機ビルドに到達するか。私が壁紙アプリ運営の経験から作った優先順序のメモです。

rork-max41swift8xcode3troubleshooting25

Rork Max で生成した Swift プロジェクトを Xcode で開いた瞬間、赤いエラーが数十件出るのに最初は怯みます。私も初回はそうでした。ただ、運営している壁紙アプリ群で似た「初期ノイズ」を 10 年以上扱ってきた経験から、潰す順序を決めておくと体感で 30 分以内に実機ビルドに到達できます。順序を残しておきます。

廣川政樹と申します。アーティスト・個人開発者として 2014 年から壁紙アプリ群(累計 5,000 万ダウンロード超)を運営しており、最近は Rork Max を新規実験アプリで使い始めました。これから書くのは、Rork Max で生成された Swift プロジェクトを Xcode で開いたときの赤いエラーを潰す順序のメモです。

最初に「触らない」と決めること

赤いエラーが多いと、つい全部を一気に直したくなります。私は逆に、最初の 5 分で「触らない場所」を決めることから始めます。具体的には、Rork Max が生成した View 階層のうち、画面遷移のルートだけを触り、個別の View 内のレイアウトは初回ビルドが通るまで一切触りません。

理由は、レイアウト調整に手を出すと「動かない原因がレイアウトのコードなのかコンパイルエラーなのか」を切り分けるコストが線形に増えるからです。まず実機で動かす、そのあとレイアウトを調整、の順序を厳守すると判断ミスが減ります。

赤いエラーを潰す優先順序

私が回している優先順序は次の通りです。

1. 依存ライブラリの整合性

最初に潰すのは、依存ライブラリの解決エラーです。Rork Max は CocoaPods 風の記述と Swift Package Manager の記述が混ざることがあり、まずどちらかに統一する必要があります。私は壁紙アプリ群でも SPM に寄せる方針で運営しているので、Rork Max のプロジェクトも SPM に揃えます。

// Package.swift に統一
let package = Package(
    name: "MyApp",
    dependencies: [
        .package(url: "https://github.com/googleads/swift-package-manager-google-mobile-ads.git", from: "11.0.0"),
        .package(url: "https://github.com/firebase/firebase-ios-sdk.git", from: "11.0.0"),
    ],
    ...
)

ここを整えると赤いエラーの 4 割は消えます。

2. import 行の欠落

次に多いのが import 行の欠落です。Rork Max は SwiftUI の import は付けてくれますが、StoreKitGoogleMobileAds の import が抜けている場面が散見されます。エラーメッセージの中で「Cannot find type 'Product' in scope」のようなものはほぼ全て import の問題です。

Xcode の「Quick Fix」(電球アイコン)で Add import を選ぶのが最速ですが、たまに候補が出ないライブラリがあります。その場合は import StoreKit import GoogleMobileAds を手で書き足します。

3. プロトコル要件の未実装

Rork Max の生成コードでは、ObservableObject を実装する宣言があるのに @Published を付け忘れていることがあります。これは「Cannot assign to property: 'self' is immutable」というメッセージで出ます。プロパティに @Published を付けるか、final class にして問題を回避します。

4. iOS バージョン不整合

新しい API(例えば .scrollIndicators(.hidden).scenePadding())が生成されているのに、Deployment Target が iOS 16 になっているケースもよくあります。私の場合、壁紙アプリ群は iOS 15 から対応しているので、初回ビルドは iOS 16 に上げて通し、その後コンポーネントを段階的に下方互換に書き戻す進め方を取っています。

5. @MainActor 周りの警告

これは赤いエラーではなく黄色い警告のことが多いのですが、Xcode 26 以降は警告がエラーに昇格するケースがあるので注意です。@MainActor を付けるべき class に付いていないと、SwiftUI の View 側から呼び出すときに警告が出ます。@MainActor final class で揃えてしまうのが楽です。

30 分でやめる判断

私が決めているルールに「最初の 30 分で実機ビルドに到達しなければ、いったん git reset で初期状態に戻して別のアプローチを取る」というものがあります。Rork Max の生成結果は、複雑なアプリだと初期エラーが 100 件を超えることがあり、30 分で潰し切れない量に膨らむと、たいてい「生成プロンプトを変えて再生成」したほうが早いのです。

私の壁紙アプリ群でも、リファクタリングを 1 時間以上ハマりかけたら捨てて書き直す、というルールを設けています。Rork Max でも同じ判断軸を適用すると、無駄なハマりが減ります。

私がよくつまずくパターン

最後に、私が Rork Max のコード起こしでよく踏むパターンを 3 つだけ書いておきます。

  • @main の中で @StateObject を初期化していて、ライフサイクル外で API 呼び出しを走らせている → Task { ... } でラップする
  • Color.gray.opacity(...) のような呼び出しで型推論が止まる → 明示的に .foregroundColor(Color.gray.opacity(0.5)) と書く
  • Picker の selection 型と Enum の RawValue 型が一致していない → init(rawValue:) を経由する

これらは Rork Max の問題というより、AI 生成コード全般のクセです。同じパターンを 3 回踏むと自然と覚えます。

私が「順序を間違えた」過去の事例

5 年ほど前、まだ AI 生成コードが手元になかった時代に、別のテンプレート生成ツールで似た「赤いエラーの山」に出会ったことがあります。そのとき私は最初に依存ライブラリではなく「コードのクセを直す」方から手を付けてしまい、丸 1 日を消費しました。原因は単純に SDK のバージョン不整合だったのですが、症状の表面だけを見ているとそこに気付けません。

この経験から私が決めたのは「赤いエラーは原因の場所ではなく症状の表れ場所」というルールです。エラーが出ているファイルを直すのではなく、なぜそこに症状が出るかを 1 段階遡る習慣をつけると、修正の連鎖が短くなります。Rork Max の生成結果に対しても、まったく同じ姿勢が役に立っています。

エラー量と「再生成」の閾値

経験的な目安として、初回エラーが 30 件以下なら手で潰し、80 件を超えるならいったん git reset で戻して再生成するのが効率的でした。30 件と 80 件の間はケースバイケースですが、依存ライブラリの統一だけで半分以上消えるかどうかを 5 分で見て、残りの量で判断しています。

エラーの絶対数より、「ひとつ直してもエラーが減らないループ」に入ってしまったかどうかが本質的な判断軸です。減らないループに 10 分入ったら、私は迷わず再生成に切り替えます。これは壁紙アプリ群でも、Lab サイトの記事生成でも、同じ判断軸を使っています。

次に試してみてほしいこと

今 Rork Max の生成結果と格闘しているなら、Build SettingsSwift Compiler - Search Paths を確認することから始めてみてください。HEADER_SEARCH_PATHSOTHER_LDFLAGS に不要な参照が残っていると、依存ライブラリの解決が崩れて連鎖的にエラーが出ます。1 行消すだけで 20 件のエラーが消えることもよくあります。

5,000 万ダウンロードの壁紙アプリ群を運営してきて、Xcode の赤いエラーは「順序を間違えなければ怖くない」と感じています。共に学んでいけたら嬉しいです。

シェア

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

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

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

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

関連記事

開発ツール2026-04-24
Rork Max で生成した SwiftUI アプリが Xcode でビルドエラー — 症状別の復旧ガイド
Rork Max で生成した SwiftUI プロジェクトを Xcode で開いてビルドしようとした際に遭遇しやすいエラー(依存解決失敗・Info.plist 不整合・Entitlements 欠落・Bundle Identifier 重複など)を、症状ごとに原因と復旧手順に分けて整理します。
開発ツール2026-06-17
誕生日を集めずに年齢を確認する — Declared Age Range API を Rork アプリに組み込む
iOS 26 の Declared Age Range API を使い、生年月日を保存せずに年齢層だけを受け取る実装方法。Rork Max のネイティブ Swift と、標準 Rork(Expo)のネイティブモジュール越しの呼び出しを、責務の線引きとともに整理します。
開発ツール2026-04-19
Rorkで作ったアプリが実機でクラッシュする——原因別の対処法
Rorkで生成したアプリがプレビューでは動くのに実機でクラッシュする問題の対処法。環境変数・ネイティブモジュール・Expo設定の落とし穴を原因別に整理しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →