XCFrameworkを生成するビルドツールのマクロ対応までの苦悩 by りゅう

iOSDC Japan 2025
レギュラートーク(40分)

XCFrameworkを生成するビルドツールのマクロ対応までの苦悩

ryu_hu03 りゅう ryu_hu03
3

iOSDC2023で紹介されたScipioは2年間の時を経て、さまざまな進化を遂げました。
私はそのScipioの開発に現在携わっています。
Scipioとは、XCFrameworkの生成・キャッシュを行うツールです。生成したいXCFrameworkをPackage.swiftに依存として追加し, それを元に依存解決をSwift Package Managerで行い、その依存関係からXCFrameworkを生成しています。

Scipioでは、内部的にSwift Buildを使用してXCFrameworkの生成を行っています。しかし調査の結果、マクロターゲットを含むパッケージは Swift Build ではビルドできないという問題に突き当たりました。本トークでは、その問題に対してどのような方法でマクロターゲットをビルドすることにしたのか、解説します。

具体的には、以下の点についてお話しします:

  • Scipioのビルドフローの全体像
  • SwiftPMやSwift Build、それを仲介するPIF (The Project Interchange Format)の関係や制約
  • マクロの詳しい動作原理
  • Scipioでマクロターゲットをビルドする場合にどのような手法を取ったのか

本トークは、マクロを含むライブラリをXCFrameworkとして利用したい方や、Scipioのビルドフローの全体像、マクロの動作原理を理解したい方にとって、有益なトークです。