web-dev-qa-db-ja.com

ポッドの更新後にコンパイルすると、「 'sharedApplication'は利用できません:iOSでは利用できません(アプリの拡張機能...)」エラー

こんにちは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適切な場所で代わりに。 "

これを解決する方法はありますか?

13
Franck

Cocoapodは非常に便利ですが(確かに)、App ExtensionsではなくAppsで動作するように設計されており、最終的には更新中に導入する機能を制御できなくなるため、どのバージョンを使用するかについてより慎重に判断する必要があります使用するAPIに基づいて使用するライブラリ。

Bolts 1.2.0の場合、明らかにsharedApplicationを使用することが決定されているため、App Extensionでの使用には適していません。

したがって、ライブラリをソース形式で使用する必要があります。おそらく、それぞれにgit submoduleを使用して、アップストリームが更新されたときにライブラリを更新できるようにします。

3
trojanfoe

それはCocoapodsプロジェクトの設定に関連する問題です

あなたはおそらくここで答えを見つけることができます

IApplication.sharedApplicationは使用できません

2
Jibeex

これを参考にしてください:

https://github.com/AFNetworking/AFNetworking/issues/2119

1
Paradise

ココアポッドを0.35.2にダウングレードすることでこれを修正しました

よりクリーンな解決策があれば、私は開いています!

0
Franck

一部のAPIはApp Extensionsで使用できません

埋め込みフレームワークを使用してコードを共有する

埋め込みフレームワークに、アプリ拡張機能で利用できないAPIが含まれていないことを確認します。一部のAPIはアプリ拡張機能では利用できません。そのようなAPIを含むカスタムフレームワークがある場合、それを含むアプリから安全にリンクできますが、そのコードをアプリに含まれる拡張機能と共有することはできません。 App Storeは、そのようなフレームワークにリンクしている、または利用できないAPIを使用しているアプリ拡張機能を拒否します。

AppExtension-Safe APIのみが必要です。すべてYESに設定されています。ただし、デフォルトはNOです。これをNOに設定すると、エラーが消えました。

ターゲット->ビルド設定-> AppExtension-Safe APIのみが必要->いいえ

0
Ashish