CocoaPods / Podspec和* .framework

问题描述 投票:19回答:2

CocoaPods问题:

我已经创建了一个与内部静态库捆绑在一起的框架,具体取决于AFNetworking和资源包(基于这两个教程来创建FWKs 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。

这可能吗?

objective-c ios ios-frameworks cocoapods
2个回答
24
投票

我实际上在办公室做了很多。我们有大量的私有源代码,可以重复使用。 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'

这将复制您的静态库,并将您的pod带入AFNetworking。这将使您的静态库更小(无需构建)并加快用户导入pod的速度。

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


1
投票

事实上,您现在可以使用Cocoapods创建自己的libxxx.a或xxxx.framework。 Cocoapods将关注通用二进制文件和公共标题等细节。请检查:https://guides.cocoapods.org/making/using-pod-lib-create.htmlhttp://blog.cocoapods.org/Pod-Authors-Guide-to-CocoaPods-Frameworks/

© www.soinside.com 2019 - 2024. All rights reserved.