Rei*_*ain 6 xcode static-libraries ios
我正在开发一个名为Silicon的静态库,我将其用于所有iOS应用程序.
因为我不想创建一个可能难以维护的大型静态库,所以我创建了许多较小的静态库,并将其作为子模块附加.
截至撰写本文时,Silicon的依赖树如下:
硅
|
| ==> FDKeychain
| ==> FDDataClient
|
| => FDRequestClient
|
| => FDFoundationKit
| ==> FDSQLiteDatabase
|
| => FDFoundationKit
正如您所看到的,FDRequestClient和FDSQLiteDatabase都将FDFoundationKit作为通用静态库.
似乎发生的事情是,当构建使用Silicon的项目时,它会将所有Silicon的目标依赖项构建到项目构建目录中.FDDataClient和FDSQLiteDatabase也会发生同样的事情.因此,在某些时候,FDRequestClient的FDFoundationKit会被构建并复制到构建目录以及FDSQLiteDatabase中的FDFoundationKit.无论哪一个建立最后只是覆盖前一个.
仅凭纯粹的运气FDFoundationKit并没有以任何严肃的方式改变,FDRequestClient和FDSQLiteDatabase不能总是使用相同的版本,但我无法保证它会永远这样.
我想弄清楚Silicon是否有办法指定使用哪个版本的FDFoundationKit,因此Silicon可以确保所使用的版本适用于FDRequestClient,FDSQLiteDatabase以及我将来添加的任何其他依赖项.
我知道CocoaPods试图解决这个问题,但我不想让某人必须设置所有这些只是为了让我的图书馆工作.如果我能找到某种方式让硅定义使用哪个版本的FDFoundationKit,一切都会完美运行.
这个问题似乎只有两个答案:
1) 使用 CocoaPods 或 Carthage 等依赖管理器。
2)您发布的任何静态库或框架不应具有任何目标依赖项。它们应该链接到您拥有的任何依赖项,并且集成您的库的人员有责任集成所需的依赖项。
| 归档时间: |
|
| 查看次数: |
347 次 |
| 最近记录: |