LoginSignup
6

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/

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
What you can do with signing up
6