-1

私のスタティック ライブラリが AFNetworking を使用し、クライアント プロジェクトもそれを使用している場合、AFNetworking で定義された定数が衝突し、クライアント プロジェクトがビルドできなくなります (重複シンボル エラー)。このようなことは通常どのように解決されますか? それを避けるために、フレームワークの作成者は何をすべきですか?

4

1 に答える 1

0

このリンクのアプローチを試してください:

http://blog.sigmapoint.pl/avoiding-dependency-collisions-in-ios-static-library-managed-by-cocoapods/

彼は次のように説明しています。

接頭辞付きのシンボルを使用してライブラリを構築する - 私の意見では最良の方法です。AFHTTPSessionManager が SIGMAPOINT_AFHTTPSessionManager になるように、最終的な .a ファイルのすべてのシンボルにプレフィックスを追加したいと考えています。依存関係のバージョンは、開発者が使用するバージョンに接続されておらず、競合は発生しません。唯一の欠点は、出力ファイルが大きくなることです。これは、誰かが同じライブラリを使用すると、最終的なファイルに同じシンボルが含まれるためです。しかし、ビルド プロセス全体はスムーズにエラーなく動作します。これは、この記事でさらに調査するソリューションです。

このツールが役立つかもしれません

https://github.com/cocoapods/cocoapods-packager

于 2014-10-14T22:42:29.080 に答える