我正在尝试在项目中使用静态库。静态库依赖于几个框架……CoreData、CFNetwork、AddressBook 等。
静态库也使用类别,所以我不得不在主项目的“其他链接器设置”中使用 -all_load 链接器选项。当我启用此功能时,我会收到 120 个错误,这些错误都与我的主项目没有与我的静态库(CoreData、CFNetwork、AddressBook 等)相同的框架链接。
开发人员想要使用静态库,链接到它,但仍然需要链接到库链接到的所有框架,这是非常不方便的。有没有办法自动化这个过程,以便主项目自动链接到静态库链接的所有框架?
我正在使用 XCode 4.4。
编辑:更清楚地说,我有以下内容:
StaticLibrary.xcodeproj
- AFNetworking
- files...
- CoreData
- categories for NSManagedObjectContext, for convenience
- AddressBook
- convenience methods for working with contacts
该项目的目标链接到 Build Phases > Link Binary With Libraries 下的必要框架。这包括 CoreData.framework、AddressBook.framework 等。
现在我想做的是将此库添加到我的另一个项目中。事实上,我想将这个库添加到我从这里开始制作的每个新项目中,所以我总是可以轻松访问我编写的便利函数/类别。所以:我将库添加到我的项目中,然后将.a
文件添加到 Build Phases > Link Binary With Libraries(我的主项目的)。我还做了我所知道的所有其他必要的事情(见评论)。
我想要发生的事情:主项目现在链接到库,因此它继承了库的所有链接,因此主项目现在也链接到 CoreData.framework、AddressBook.framework 等。
会发生什么:主项目给了我错误,因为它没有链接到库需要的任何东西。
有没有办法自动将静态库中的链接框架添加到主项目中,或者我应该将库拆分为 CoreDataStaticLibrary 等,然后要求开发人员将 CoreData.framework 以及静态库添加到项目中每次都瞄准?