21

CocoaPods 问题:

我创建了一个与内部静态库捆绑的框架,具体取决于 AFNetworking 和资源包(基于这两个教程来创建 FWK http://www.blackjaguarstudios.com/blog/programming/2012/11/22/xcode- 45-creating-ios-framework-and-hold-my-hand-im-3-years-oldhttps://github.com/bclubb/iOS-Framework )

我很想创建一个 podspec,这样人们只需在他们的 Podfile 中添加一行,如果需要,它会在 pod 安装时添加我的框架和 AFNetworking。

这可能吗?

4

2 回答 2

25

实际上,我在办公室做了很多这样的事情。我们有大量重复使用的私有源代码。CocoaPods 帮助更快地启动新项目,并使它们更容易更新。

虽然可以将您的框架添加到 podspec,但我发现通过 CocoaPods 传递静态库和标头要容易得多,而不用担心框架。

您必须根据您的项目更新您的 podspec,但以下是重要部分:

s.source_files = 'StaticLib/Headers/*.h'
s.preserve_paths = 'StaticLib/libYourLibrary.a'
s.library = 'YourLibrary'
s.xcconfig = { 'LIBRARY_SEARCH_PATHS' => '$(PODS_ROOT)/ProjectFolder/LibraryFolder' }    

s.dependency = 'AFNetworking'

这将复制您的静态库以及将 AFNetworking 带入您的 pod。这将使您的静态库更小(不必构建它)并加快用户导入您的 pod 的速度。

如果您必须使用框架,上面的相同内容仍然适用,但您可能需要做一些细微的调整。无论如何,所有框架都是静态库和头文件的漂亮文件夹结构,所以为什么要为额外的东西烦恼。无论如何,源代码仍然内置在 lPods.a 静态库中。希望这可以帮助你。

于 2013-01-02T18:22:26.953 回答
1

事实上,您现在可以使用 Cocoapods 创建自己的 libxxx.a 或 xxxx.framework。Cocoapods 将处理诸如通用二进制和公共标头之类的细节。请检查:https ://guides.cocoapods.org/making/using-pod-lib-create.html和http://blog.cocoapods.org/Pod-Authors-Guide-to-CocoaPods-Frameworks/

于 2015-10-29T08:00:28.130 回答