こんにちはcocoapodsを使用したプロジェクト(アプリ拡張機能を含む)があります。 (Parse、Boltsなどのライブラリを使用)。
以前はすべて正常に機能しますが(bolts 1.1.5ライブラリを使用)、ポッド更新(Bolts 1.2.0)を実行すると、エラーが発生します。
「/ Volumes/project 2/Pods/Bolts/Bolts/iOS/BFAppLinkNavigation.m:100:29: 'sharedApplication' is not available:not available on iOS(App Extension)-Use view controller based solution適切な場所で代わりに。 "
これを解決する方法はありますか?
Cocoapodは非常に便利ですが(確かに)、App ExtensionsではなくAppsで動作するように設計されており、最終的には更新中に導入する機能を制御できなくなるため、どのバージョンを使用するかについてより慎重に判断する必要があります使用するAPIに基づいて使用するライブラリ。
Bolts 1.2.0の場合、明らかにsharedApplication
を使用することが決定されているため、App Extensionでの使用には適していません。
したがって、ライブラリをソース形式で使用する必要があります。おそらく、それぞれにgit submodule
を使用して、アップストリームが更新されたときにライブラリを更新できるようにします。
ココアポッドを0.35.2にダウングレードすることでこれを修正しました
よりクリーンな解決策があれば、私は開いています!
埋め込みフレームワークに、アプリ拡張機能で利用できないAPIが含まれていないことを確認します。一部のAPIはアプリ拡張機能では利用できません。そのようなAPIを含むカスタムフレームワークがある場合、それを含むアプリから安全にリンクできますが、そのコードをアプリに含まれる拡張機能と共有することはできません。 App Storeは、そのようなフレームワークにリンクしている、または利用できないAPIを使用しているアプリ拡張機能を拒否します。
AppExtension-Safe APIのみが必要です。すべてYESに設定されています。ただし、デフォルトはNOです。これをNOに設定すると、エラーが消えました。
ターゲット->ビルド設定-> AppExtension-Safe APIのみが必要->いいえ