WWDC 19で発表されたXcode 11の新機能の中でも喜ばしいものの1つは、XCFrameworksという、フレームワークの新しいバイナリ配布フォーマットです。これまでフレームワークの配布には".framework"という拡張子のフォーマット(バンドル)が使われていました。しかし".framework"のバイナリの配布では、1つのバンドルでシミューレーターとデバイス両方で使用できるようにするためのビルド手順の複雑さ、iOS用とmacOS用、tvOS用など対応プラットフォーム毎にバンドルを分離する必要(この場合は3つ)などの問題がありました。
Xcode 11から使える".xcframework"という新しいフォーマットは、まさにこれらの問題を解決しているのですが、どのように解決しているのか、またどうしてXcode 11のタイミングで導入されたのでしょうか?本LTではXCFrameworksの構造や作成方法、そしてこの形式が導入された理由(の推測)に迫っていきます。