OSS探訪GitHubでログイン

YAML/JSONのproject specから再現可能なXcode projectを生成する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,830
主要言語
Swift
ライセンス
MIT
リポジトリ最終更新
2026/09/13
ページ内ナビ

概要

XcodeGenはYAML/JSONで記述したproject specとfolder構造から.xcodeprojを生成するSwift CLIです。target、configuration、scheme、build setting、package dependencyをtextで管理し、project fileのmerge conflictを避けながらlocal/CIで同じXcode projectを再生成できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

target・scheme・build setting・dependencyをproject.ymlへ宣言する

project specでapplication/framework target、platform、source、configuration、scheme、Swift packageなどを定義し、xcodegen generateから.xcodeprojを生成します。specは複数fileに分割してinclude/overrideすることもできます。

出典:[2]

generated .xcodeprojをgitから外しfolder構造とspecをsource of truthにする

source directoryを自動的に解析してXcode group/fileへ反映できるため、手編集されたproject fileのmerge conflictを減らせます。CI上でprojectを生成するworkflowにも利用できます。

出典:[2]

向いている用途

複数target・環境・packageを持つiOS projectのproject設定をcode reviewしたい場合に向く

複雑なbuild settingやtarget dependencyをYAML/JSONとして差分管理し、新規checkoutやCIで同じprojectを再現したいteamに適します。

出典:[2]

導入前の確認

2.46.0ではtarget宣言順とSwift package traitsの生成仕様が更新された

2.46.0はSwift package traitsをremote/local package referenceで保持し、generated projectのtarget順序をspecの宣言順へ変更しました。またstatic frameworkのembed defaultも変更されています。Package.swiftはSwift tools 5.9、macOS 11以上を宣言するため、既存spec更新時はgenerated project diffを確認してください。

出典:[4][3]

参考にした公式資料

  1. [1]yonaskolb/XcodeGen — GitHub repository(2026-10-06)
  2. [2]XcodeGen 2.46.0 — README(2026-10-06)
  3. [3]XcodeGen 2.46.0 — Package.swift(2026-10-06)
  4. [4]XcodeGen 2.46.0 release(2026-10-06)
  5. [5]XcodeGen MIT license(2026-10-06)
編集部からの補足

.xcodeprojのmerge conflictを減らし、target・scheme・build settingをtextでreviewしたいiOS teamに向きます。2.46.0ではtarget順・static framework embedなど生成結果が変わるためupgrade時はproject diffを確認してください。

3ステップで試す

  1. 1

    XcodeGen 2.46.0をMint経由で固定して確認する

    確認済みreleaseを固定し、同じXcodeGen versionをdeveloper/CIで使えるようにします。

    mint run yonaskolb/XcodeGen@2.46.0 xcodegen --version
  2. 2

    最小のproject.ymlを作る

    application targetとsource directoryをYAML specへ宣言します。

    cat > project.yml <<'YAML' name: MyApp targets: MyApp: type: application platform: iOS sources: [MyApp] YAML
  3. 3

    Xcode projectを生成する

    project.ymlからMyApp.xcodeprojを生成し、clean checkoutでも同じprojectを再現できることを確認します。

    mint run yonaskolb/XcodeGen@2.46.0 xcodegen generate
公式READMEで確認

成長

成長の推移 · 直近30日

8,830 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
7
Open PR
51

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • swift
  • xcode
  • generator
  • xcodeproject
  • specification
  • yaml
  • xcodeproj
  • cli
  • ci
Stars
8,830
Forks
913
Watchers
100
Open Issues
355
Contributors
212
所有者種別
User
主要言語
Swift
ライセンス
MIT
リポジトリ最終更新
2026/09/13

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?