回答:
use_frameworks
静的ライブラリの代わりにフレームワークを使用することをCocoaPodsに伝えます。Swiftは静的ライブラリをサポートしていないため、フレームワークを使用する必要があります。
別の答えとして、スタティックライブラリとフレームワークの違いを説明しました。
Cocoa Touchフレームワーク
これらは常にオープンソースであり、アプリと同じように構築されます。(したがって、アプリを実行するとき、およびプロジェクトをクリーンアップした後は常に、Xcodeがコンパイルすることがあります。)フレームワークはiOS 8以降のみをサポートしますが、フレームワークでSwiftとObjective-Cを使用できます。
Cocoa Touch静的ライブラリ
名前が示すように、それらは静的です。そのため、プロジェクトにインポートするときに、それらはすでにコンパイルされています。コードを見せずに他のユーザーと共有できます。現在、スタティックライブラリはSwiftをサポートしていません。ライブラリ内でObjective-Cを使用する必要があります。アプリ自体は引き続きSwiftで作成できます。
出典:私の他の回答 | AddThis.comブログ
use_frameworks!
ココアポッドに動的ライブラリを使用するように指示します。特に、静的ライブラリを迅速にサポートしないため、一時は非常に流行していました。つまり、選択肢がなかったためuse_frameworks!
です。
Xcode 9ベータ4およびCocoaPods 1.5.0以降、Swift静的ライブラリがサポートされるようになりました。主な利点は、特に多くのポッドがある場合、アプリの起動時間が速くなることです。多くのdylibがある場合、iOS 10および11は最速ではありません。
CocoaPods 1.5.0は2018年4月上旬にリリースされたため、アップグレードする必要がある場合がありますsudo gem install cocoapods
。
ただし、スタティックライブラリではまだ正しく動作しないポッドがいくつかあるので、走行距離が異なる場合があります。
No such module
エラーに出くわしました。それはそれらのココアポッドの問題ですか?
use_modular_headers!
Podfile を追加する必要があったのは、Podfileを必要とするポッドでも機能するようにするためですが、まだ有効にしていないためです。
use_frameworks
静的ライブラリの代わりに動的フレームワークを使用することを宣言します。
Xcode 9.0とCocoaPods 1.5.0がリリースされたため、を使用しない場合は、静的ライブラリを迅速に使用できますuse_frameworks
。
問題の1つuse_frameworks
は、ポッド/プロダクトのすべてのフレームワークがフレームワークであることです。
関連記事はこちら:iOSでの静的および動的フレームワークの基本的な概要
One performance with use_frameworks is that all your framework in Pods/Products is frameworks.
一つのパフォーマンスって何?
Cocoapodの[About] use_frameworks!
はバイナリのタイプを担当します。
use_frameworks!
ある存在 -dynamic framework
use_frameworks!
ある存在ではありません -static library
use_frameworks!
プロジェクトの対応するターゲットのMach-O Type
[About]に反映されていPods
ます。
タイムライン:
use_frameworks!
、Swiftポッドに使用する必要がありました。