Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SPM binaryTargetのTips

shima
July 27, 2023

SPM binaryTargetのTips

shima

July 27, 2023
Tweet

Other Decks in Technology

Transcript

  1. let package = Package( name: "HogeSDK", products: [ .library( name:

    "HogeSDK", targets: [ "HogeSDK" ] ) ], dependencies: [], targets: [ .binaryTarget( name: "HogeSDK", path: "HogeSDK.xcframework" ), .binaryTarget( name: "DependencyA", path: "DependencyA.xcframework" ) ] )
  2. 依存関係でつまづく binaryTarget には dependency を指定することができず、 Package の dependencies に binaryTarget

    を書くこともできないため、 このままでは依存関係を解決することができませんでした。
  3. let package = Package( name: "HogeSDK", products: [ .library( name:

    "HogeSDK", targets: [ "HogeSDKTarget" ] ) ], target: ~ 省略~ .target( name: "HogeSDKTarget", dependencies: ([ .target(name: "HogeSDK"), .target(name: "DepencencyA") ]) ),
  4. まとめ .binaryTarget で取り込んだライブラリに直接 dependencies を書くことはできな い。 依存元と依存先の両方を dependencies に含んだ target

    を作ることで依存の解決がで きる。 ライブラリによってはこの形式にしてもうまくいかないことがありましたが、条件 がよくわからなかった。 今回のようなケース以外にも、社内ライブラリのSPM対応等で使えると思うので、 依存関係でつまづいた際は試してみるといいかと思います。