iOSアプリで画像をクリッピングすると言えば、利用するライブラリはほぼ TOCropViewController 一択です。
TOCropViewControllerには Objective-C向けのTOCropViewController
と Swift向けの CropViewController
との両方のライブラリが混在しています。僕が使っているのは CropViewController
の方です。Carthage経由で CropViewController をインストールしています。
5日前に TOCropViewController の v2.6.0 がリリースされました。v2.6.0での大きな変更点は Swift Package Manager (SPM)に対応したところです。その影響か CropViewController の Deployment Target が iOS 12.0 になってしまいました。
トップページには今でも iOS 8以上対応と書かれているので間違いだと思いたい……ちなみに該当のIssueは以下の通りです。
現在開発中のアプリの Deployment Targetは iOS 11.4 なので、当然ビルドエラーが発生するようになってしまいました。
/PATH/ViewController.swift:13:8: Compiling for iOS 11.4, but module 'CropViewController' has a minimum deployment target of iOS 12.0:
/PATH/Carthage/Build/iOS/CropViewController.framework/Modules/CropViewController.swiftmodule/arm64-apple-ios.swiftmodule
解決方法その1:アップデートしない
一番簡単な解決方法は一つ前のバージョンを使うことです。
... github "yhirano/LicensePlistViewController" github "TimOliver/TOCropViewController" == 2.5.5 github "dzenbot/DZNEmptyDataSet"
解決方法その2:TOCropViewControllerを使う
TOCropViewController の方を使う。CropViewController 向けの実装ができているのであれば、少しの変更で対応が可能です。
解決方法その3:アプリのDeployment Targetをあげる
日本のスマホユーザーの大半が使っている「LINE」は、2021年1月4日現在 iOS 12.0〜 がサポートされているバージョンになります。アプリの Deployment Targetを iOS 12以上にしても問題ないと判断できそうです。