我正在开发一个名为Silicon的静态库,用于我所有的iOS应用程序。
因为我不想创建一个可能难以维护的庞大静态库,所以我创建了许多较小的静态库作为子模块附加。
截至本文撰写时,Silicon的依赖树如下:
仅仅凭借运气,FDFoundationKit没有以任何严重的方式发生变化,这样FDRequestClient和FDSQLiteDatabase就可以始终使用相同的版本,但我不能保证它会一直像这样。
我正在尝试找出是否有一种方法让Silicon指定要使用的FDFoundationKit版本,这样Silicon就需要负责确保所使用的版本适用于FDRequestClient、FDSQLiteDatabase以及未来添加的任何其他依赖项。
我知道CocoaPods试图解决这个问题,但我不想让别人为了让我的库工作而设置所有这些。如果我能找到某种方式让Silicon定义要使用的FDFoundationKit版本,那么一切都将完美地运行。
因为我不想创建一个可能难以维护的庞大静态库,所以我创建了许多较小的静态库作为子模块附加。
截至本文撰写时,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试图解决这个问题,但我不想让别人为了让我的库工作而设置所有这些。如果我能找到某种方式让Silicon定义要使用的FDFoundationKit版本,那么一切都将完美地运行。