LoginSignup
2
4

More than 3 years have passed since last update.

Swift Package Manager対応ではまったところ

Posted at

はじめに

  • iOSアプリ開発でSwift Package Manager扱うことが増えてきました。今後、既存のライブラリをSwift Package Managerに対応させることが増えてくると思います。ライブラリを対応させるなかでのハマりどころについてまとめました

環境

Xcode 12.2
Build version 12B45b
Apple Swift version 5.3.1 (swiftlang-1200.0.41 clang-1200.0.32.8)

OSの分岐

  • Swift Package ManagerはiOS以外のOSをサポートしているのでOSによってはサポートしていないフレームワークもあるので分岐が必須です
#if os(iOS)
import UIKit

class HogeView: UIView {

}

#endif

Bundleの呼び出し

  • Swift 5.3から画像やxibなどのリソースファイルがサポートされるようになりました。
  • サポート伴い、Swift Package ManagerでのBundleの呼び出し方が変わりました。画像やXibなどの呼び出しでは分岐が必要になります。SwiftGenでも対応のため、変更が入ってました。
#if SWIFT_PACKAGE && swift(>=5.3)
   let bundle = Bundle.module
#else
   let bundle = Bundle(for: Hoge.self)
#endif

参考リンク

2
4
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
2
4