15
7

More than 3 years have passed since last update.

XCFrameworkって何?どうやって作成するの?

Posted at

XCFrameworkとは

  • Xcode11から利用開始となった、バイナリフレームワーク配布のため新たにサポートされた形式です。
  • XCFrameworkはエミュレータやデバイスなどの複数のプラットフォームを同じバンドルに入れられます。
    • ひとつのXCFrameworkの中に複数の .framework がバンドルされます。
    • XCFrameworkはXcodeがサポートするどのプラットフォームにも対応します。(ios, macOS, tvOS, watchOS)

XCFrameworkだと何が嬉しいのか

  • これまでエミュレータと実機に対応したユニバーサルフレームワークを生成したい場合、lipoコマンドを使用して結合する必要がありましたが、XCFrameworkだとそれをする必要がありません。
  • lipoコマンドで生成したユニバーサルフレームワークはストア提出時にエミュレータ用のバイナリ(x86_64)を取り除く必要がありましたが、XCFrameworkではその手間が発生しません。
    • XCFrameworkだとストア申請時はデバイス用のバイナリのみ埋め込まれます。

XCFrameworkを生成するには

  1. ビルド設定の Build Libraries for Distribution をYESにします。
  2. 1を設定した上で、下記のコマンドでフレームワークを生成します。
xcodebuild -create-xcframework -framework [path] -framework [path] -output Hogehoge.xcframework

参考:
https://developer.apple.com/documentation/xcode_release_notes/xcode_11_release_notes
https://developer.apple.com/videos/play/wwdc2019/416/

15
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
7