100DaysOfSwiftUIでも有名なサイトで、WWDCで公開されるXcode12とSwift5.3についての最新情報が説明されてました。
いろいろな拡張や変更が入りそうですが、非常に注目しているのが、SPM(SwiftPackageManager)の拡張です。
Sponsor Link
Swift Package Managerがリソースをサポート
リソースだけではなく、いろいろとサポート対象が追加されます。バイナリに対してのDependencyを定義できたり、Dependencyに応じて異なる条件を設定できたり。
自分的には、iOSとMacOS用の共通SwiftUIライブラリを作りたくてSwiftPackageManagerを使いたかったのですが、問題がありました。
OSが提供するライブラリが違うこともあるのですが、OSが提供するリソースに結構な違いがありました。
SF Symbolsを見るとわかりますが、iOSでは、OSがリソースとして豊富なアイコンを提供してくれます。一方、MacOSにはそのようなアイコンはほぼありません。
ということで、困ってました。
”MacOSならば、自分で作ったリソースを使って表示、iOSならOSのリソースを使って表示”などの回避策を使いたくても、Swift Package Managerは、独自リソースを持てない/管理できないので、MacOS専用のリソースを持つライブラリへの依存関係を定義しなければいけませんでした。
以下が、実際のチケットです。
- Package Manager Resources
- Package Manager Localized Resources
- Package Manager Binary Dependencies
- Package Manager Conditional Target Dependencies
ちなみに、Swift5.3, Xcode12は、WWDCで発表されるのでいまは、betaとしてしか使えません。2つのXcodeを使い分ける自信がないので、自分は正式発表を待ってから試すつもりです。
Sponsor Link