CocoaPods/Specsに既に存在するライブラリのパブリックフォークがあります。 Podfileでは、これを行うことにより、この分岐ポッドを参照できます。
pod 'CoolLibrary', :git => '[email protected]:myname/CoolLibrary-Forked.git', :commit => 'abcdef1234567890abcdef1234567890'
私はMyLibrary.podspec
にこれを入れてみました:
s.dependency 'CoolLibrary', :git => '[email protected]:myname/CoolLibrary-Forked.git', :commit => 'abcdef1234567890abcdef1234567890'
ただし、次のエラーメッセージが表示されます。
-> MyLibrary.podspec
- ERROR | The specification defined in `MyLibrary.podspec` could not be loaded.
[!] Invalid `MyLibrary.podspec` file: [!] Unsupported version requirements. Updating CocoaPods might fix the issue.
この方法で.podspecに依存関係を指定することは可能ですか(つまり、podspecを持っているがCocoaPods/Specsにはないポッド)?
これを許可すると、他のポッドスペックが依存するパッケージを定義できなくなり、予期しないAPIの違いにより他のパッケージが破損する可能性があるため、ポッドスペックから許可されません。
たとえば、AFNetworkingに依存する2つのポッドを考えますが、1つは外部ソースの場所(ポッドA)を指定し、もう1つは最小バージョン要件(ポッドB)のみを指定します。
s.dependency 'AFNetworking', :git => 'https://arbitrary/location'
s.dependency 'AFNetworking', '> 2'
現在、いくつかの潜在的な問題があります。
これにより、podspecがバージョンの約束を静かに破る方法を導入できない理由が明らかになることを願っています。ただし、Podfileからareを制御できるのはエンドユーザー(アプリ開発者)であり、予期しない破損。
依存関係は 非常に単純 であり、Podの名前とバージョン指定子を定義する機能のみがあります。 Podfileの依存関係と同じ拡張子で拡張することはできません。