メインコンテンツまでスキップ

Xcode

Overview

Xcodeについて記載しているセクション。

Project (.xcodeproj)

iOSやwatchOSなど複数Targetsをグループ化するのが Project
Targetのベースとなる設定はProjectの build settings で行い、Target固有の設定はそれぞれのTarget内の build settings でやる感じです。

XcodeはProjectを開き、Targetをビルドする、ということですね。

Workspace (.xcworkspace)

複数のProjectを同じレベルで束ねることができるのが Workspace
PackegeMangerにCocoapodsを使用している場合はよく見る。

xcodeproj vs xcworkspace

以上のことから、使い分けとしては以下のようになります。

  • 1つのメインプロジェクトがあり、そこからの参照しかない場合は Subproject として組み込む
  • 複数のプロジェクトからの依存がある場合、 Workspace として束ねる

Team

Xcodeに登録済みの「Apple ID」を選択する。
シュミレーターで動作確認をする場合には設定の必要はないが、実機転送を行う際には設定が必要。

Product

これはビルドされたバイナリ(例:Runner.app)が入る場所。 実行可能な成果物を Xcode が一時的に表示する。

Runner

Flutter プロジェクトにおいて、Runner は iOS 側の Xcode プロジェクトであり、Flutter で書かれたアプリの iOS 実装をビルド・署名・配布するための入り口となる部分。

主に以下のような役割を担う。

  • Runner.xcodeproj
    • Xcode プロジェクト本体(依存関係なしの単体構成)
  • Runner.xcworkspace
    • CocoaPods で管理された依存ライブラリ(Pods)を含む統合プロジェクト
    • Flutter では基本的にこちらを開く必要がある。

この Runner プロジェクトには、アプリの以下のような設定が含まれている。

  • バンドルID(例:com.example.app)
  • バージョン番号(Version / Build)
  • サポートするデバイスや向き(iPhone/iPad、Portrait/Landscape)
  • 実行対象(ターゲット)およびコード署名設定(Team / Provisioning Profile)
ヒント

この Runner は Xcode プロジェクトのターゲット名 にもなっており、アプリのビルドや署名はこのターゲットを元に行われる。

生成される構成の例(ios/配下)

ios/
├── Runner/
│ ├── AppDelegate.swift # エントリーポイント
│ ├── Assets.xcassets/ # アイコンや画像などのアセット
│ ├── Info.plist # アプリの設定(バージョン、権限など)
│ └── main.m(Obj-C)or main.swift
├── Runner.xcodeproj/ # Xcode プロジェクト(構成ファイル)
├── Runner.xcworkspace/ # CocoaPods 対応時に生成される統合プロジェクト
├── Podfile # CocoaPods 設定ファイル
└── Pods/ # CocoaPods による依存ライブラリ

Pods

Pods は CocoaPods を通して導入された外部ライブラリ群で、Flutter プラグイン(firebase, url_launcher など)の iOS 側依存をまとめて管理する役割を持つ。
通常、Flutter プロジェクトでは自動的に生成され、開発者は pubspec.yaml にプラグインを追加するだけで iOS 側にも反映される。

ヒント

CocoaPods によって管理されている依存ライブラリ(例:RevenueCat SDK、Firebaseなど) 自動生成されるため、基本的には直接触らないことが多い。

関連ファイル

  • Podfile: 依存関係の定義ファイル
  • Pods/: 実際にインストールされたライブラリ群
  • Development Pods: 開発中またはローカルで直接参照している Pod
  • Frameworks: ビルド後にリンクされる iOS フレームワーク
  • Targets Support Files: 各 Pod のビルド設定情報

CocoaPods を利用している場合は必ず Runner.xcworkspace を開くようにし、.xcodeproj は使わないように注意する。

Resource