모든 iOS 앱에 사용하는 Silicon이라는 정적 라이브러리를 만들고 있습니다.일반적인 정적 라이브러리가있는 정적 라이브러리를 연결하는 올바른 프로세스는 무엇입니까?
유지 관리하기 어려울 수있는 대규모 정적 라이브러리를 만들고 싶지 않기 때문에 서브 모듈로 첨부하는 더 작은 정적 라이브러리를 많이 만듭니다. |
Silicon
다음과 같이 실리콘이 작성 종속성 트리의 시간으로
입니다
| ==>FDKeychain
| ==>FDDataClient
|
| =>FDRequestClient
|
| =>FDFoundationKit
| ==>FDSQLiteDatabase
|
| =>FDFoundationKit
당신이 볼 수 있듯이 FDRequestClient 및 FDSQLiteDatabase 모두 일반적인 정적 라이브러리로 FDFoundationKit 있습니다.
Silicon을 사용하는 프로젝트가 빌드 될 때 Silicon의 모든 타겟 종속성이 프로젝트 빌드 디렉토리에 빌드됩니다. FDDataClient와 FDSQLiteDatabase도 마찬가지입니다. 그래서 어느 시점에서 FDRequestClient의 FDFoundationKit이 빌드되어 FDSQLiteDatabase의 FDFoundationKit뿐만 아니라 빌드 디렉토리에도 복사됩니다. 어느 것이 든 마지막으로 작성된 것은 이전 것을 덮어 씁니다.
단순한 행운에 의해 FDFoundationKit은 FDRequestClient와 FDSQLiteDatabase가 항상 동일한 버전을 사용할 수있는 것과 같이 심각한 변화가 없었지만 영원히 그렇게 될 것이라고 보장 할 수는 없습니다.
Silicon이 사용할 FDFoundationKit 버전을 지정하는 방법이 있는지 알아 내려고합니다. 사용 된 버전이 FDRequestClient, FDSQLiteDatabase 및 기타 종속성 모두에서 작동하는지 확인해야 할 책임이 있습니다. 미래에 추가하십시오.
나는이 문제를 해결하려는 CocoaPods의 시도를 알고 있지만 누군가 내 라이브러리를 작동시키기 위해 모든 것을 설정해야하는 것을 원하지 않습니다. 만약 내가 실리콘을 가지고 있다면 FDFoundationKit의 어떤 버전이 모든 것을 사용하는지 완전히 정의 할 수 있다는 것을 발견 할 수있을 것입니다.
CocoasPods를 사용하고 싶지는 않습니다. "내 라이브러리를 작동시키기 위해서 다른 사람을 설치하고 싶지 않으므로"CocoasPods를 사용하고 싶지는 않습니다. 나는 다른 사용자가 여기에서 만들 것이라는 대부분의 제안이 개인 CocoaPod의 일회성 설정을 할 경우 설정하고 관리하는 데 더 많은 시간이 필요하다는 것을 확신합니다. – Emilie
그러나 Silicon의 사용자에게는 설정이 없습니다. 그들은 정적 라이브러리를 링크 만하면 모든 것이 작동합니다. CocoaPods로 전환하면이 라이브러리를 사용하고자하는 모든 사람들이 그것을 필요로합니다. 나는 당신이 그것을 링크하면 올바르게 구축 할 수 있도록이 라이브러리를 가지고 legwork을하려고 노력하고있다. –