質問: 閉じた依存関係を実現したいのですが、以下のような参照は可能でしょうか Project(Aライブラリ導入プロジェクト)->A(現在作成中)->C(Realm ver0.9x) Project(Aライブラリ導入プロジェクト)->C(Realm 最新バージョン,) ライブラリを作ろうとしています、DBを活用したライブラリで、DBはRealmです。 ただこのRealmがどうもバージョンがポンポンアップされて、定まってせん。 Realmは将来あるライブラリなので、採用されるプロジェクトがどんどん多くなると思います。 ですが、私が現在作ってるライブラリは、できれば今のバージョンで固定したいのです。 Realmを参照してるライブラリのため、バージョンアップのために動作確認必要になり、 面倒。かといって、導入してくれたプロジェクトのRealmバージョンを中途半端な バージョン押し付けるのはおかしいと思ってます。 Aライブラリの参照するRealmはC(Realm ver0.9x)だけを参照して、プロジェクトからは 見えないし影響与えない状態にして、導入プロジェクトは最新のバージョンでRealm を入れられるようにしたいのです。 ちなみにライブラリと書いてますが、cocoa touch frameworkを採用予定です。 依存関係はcocoapodsを使用します。 よろしくお願いいたします。
回答: Realmは現在バージョン1.0に向けて開発を加速している状況ですので、まだまだ変更があります。 バージョンアップについていくのが大変なのは理解できますが、現在のバージョンで固定するというのはまったくお勧めできません。 少なくとのバージョン1.0まではバージョンアップにそれなりの間隔で追随することができなければ、使い続けるのは難しいと思います。それまでは安定しているCoreDataやSQLiteなどの使用をお勧めします。 上記の内容を踏まえた上で、あるライブラリだけ使用するバージョンを固定する方法ですが、`Realm.framework`の名前を変える以外にはないと思います。ライブラリが使うものは、Realm.frameworkではない別の名前にして、別モジュールとしてインポートして使うことで、アプリケーション側では自由にRealmの最新バージョンを利用することができます。