vearで使っているXcodeGenのymlを公開しました

vearで使っているXcodeGenのymlを公開しました

作成日
Apr 7, 2021 11:44 AM

vearで使っているXcodeGenのymlを公開しました。

一つのxcodeprojを生成し、その中に複数のターゲットがある構成になっています

name: vear
configs:
  Debug: debug
  Release: release
include:
  - XcodeGen/Versions.yml
  - XcodeGen/Packages.yml
  - XcodeGen/AggregateTargets.yml
  - XcodeGen/TargetTemplates.yml
  - XcodeGen/App.yml
  - XcodeGen/Resource.yml
  - XcodeGen/Entity.yml
  - XcodeGen/Ask.yml
  - XcodeGen/Broadcast.yml
  - XcodeGen/UI.yml
  - XcodeGen/Tracker.yml
  - XcodeGen/Tutorial.yml
  - XcodeGen/VendorFramework.yml

機能ごとにディレクトリを切る

xcodegenのgroup機能を使うと、画像のように機能名の下にApp, Core, Testsとネームスペースを切って並べることができます。

image

Dynamicライブラリをまとめる

targets:
  VendorFramework:
    templates:
      - Project
      - Versions
    type: framework
    sources: 
      - path: ../VendorFramework/Core
        group: VendorFramework
    settings:
      base:
        PRODUCT_BUNDLE_IDENTIFIER: com.noppelab.vear.VendorFramework
    dependencies:
      - package: Kingfisher
      - package: SFSafeSymbols
      - package: SnapKit
      - package: SwiftRichString
      - package: SwiftUIFlux

複数のモジュール間で共通で使うライブラリはDynamicリンクする必要があるのですが、これらをVendorFrameworkというフレームワークに全部入れています。

こうすることで、Dynamicを提供していないフレームワークにPRを送ることなくdynamic linkが出来ます。あとこっちの方が起動が早い気がします。気のせいかもしれないけど。

バージョンだけのymlを作る

targetTemplates:
  Versions:
    settings:
      base:
        MARKETING_VERSION: 2.13.0
        CURRENT_PROJECT_VERSION: 108

これをやっておくと、includeで全部のモジュールのバージョンが合わせられます。

あとは後からアップデートのバージョン追う時に楽そう。