创建自己的CocoaPod库
CocoaPods是本机iOS / macOS项目的依赖项管理器。 它具有成千上万个库,可以通过共享而不是共享项目的整个库集,而仅共享包含有关依赖项的所有信息的单个Pod文件,来帮助您优雅地扩展项目。 最终,其目标是通过创建一个更加集中的生态系统来提高第三方开源库的可发现性和参与度。
不仅如此,您还可以在私有存储库中创建pod,因此没有人可以访问它,并且您将获得CocoaPods的所有好处。
首先,让我们看一下cocoapods到底是什么 :
在这里,您可以看到cocoapods将所有依赖项存储在其他位置(例如GitHub上的代码,gitlab等),以及关于cocoapods仓库的pod信息。
因此,对于创建Pod,您应该将代码存储在某个仓库(公共或私有,您可以选择)上,并将Pod信息提供给cocoapods。
Pod信息实际上是一个.podspec文件,其中包含有关库的所有信息(请参见下文)。 因此,podspec基本上如下所示:
Pod :: Spec.new do | s |
s.name ='MyLibrary'
s.version ='0.1.0'
s.summary ='真棒'
s.description = <<-DESC
帮助您飞行。
数据中心
s.homepage ='http://example.com'
s.screenshots ='www.example.com/screenshots_1'
s.license = {:type =>'MIT',:file =>'LICENSE'}
s.author = {'Maxud'=>'nuves101@gmail.com'}
s.source = {:git =>'http://github.com',:tag => s.version.to_s}
s.social_media_url ='https://twitter.com/ '
s.ios.deployment_target ='7.0'
s.platform =:ios,'7.0'
#s.public_header_files ='Pod / Classes / ** / *。h'
s.dependency“ AFNetworking”
结束
这里介绍了可用于podspec的所有键。
这里有一些建议,您应该注意:
- 检查您的平台版本不低于附属机构的平台版本。
- 您要导入到项目中的静态库应作为vendored_libraries添加,并且是子依赖项:
s.subspec'StaticLib'do | dss |
dss.preserve_paths =' / *。h'
dss.vendored_libraries ='项目/类/crypto_libs_DSS/libdss_mobile_dyn_fat.a'
dss.libraries ='dss_mobile_dyn'
结束
3.如果您的项目的前缀文件中有环境设置,请添加前缀文件的路径:
s.prefix_header_file ='Project-Prefix.pch'
4.如果您拥有CoreData模型之类的任何资源,或所需的任何文件(不是图像),请使用s.resources podspec。
5.子舱可以像这样导入:
s.dependency“ AFNetworking”
这是简短的podspec文件描述。 但是如何创建呢? CocoaPods具有用于创建自己的Pod的良好工具链。 首先,安装cocoapods:
须藤宝石安装cocoapods
接下来,让我们为您的cocoapod下载模板:
cd〜/ pod lib create MyPodTools
它将问几个问题:
您要使用哪种语言? [ObjC / Swift]> ObjC
您想在您的库中包含一个演示应用程序吗? [是/否]>是
您将使用哪些测试框架? [Specta / Kiwi / None]>无
您想进行基于视图的测试吗? [是/否]>否
您的课程前缀是什么?> AK
根据您的计划回答他们。
如果一切正常,则应立即使用项目打开xcode。 不用担心示例项目,如果您在上面回答了“否”。Xcode需要某种方案来构建和集成您的pod,因此它创建了空的示例项目。 在最终仓库中,将没有任何示例文件。
在Pods-> Development pods文件夹下,您可以看到RepleceMe.m文件。 因此,按照说明进行操作,将其删除🙂并在其中添加您的项目文件(或者,如果刚开始就创建它们)。 仔细检查添加到捆绑包中的静态库蜜蜂。 同样不要忘记修改您的podspec文件,为您的库和项目文件指定适当的路径。
接下来,最退出也是最重要的步骤之一是…..整理。 是的,在将它们提交给cocoapods之前,您应该先对它们进行库和规格检查(cocoapods将拒绝未通过棉绒的库)。
pod lib lint MyPodTools.podspec
如果有任何问题,请修复项目中的错误,然后再次运行…
有几点要注意,请注意:
- 修复项目中的警告。 如果有很多警告,棉绒将不会通过。 (尽管您可以使用’-允许警告’通过)
- 如果您不能找出问题所在,请使用“-免清洗”运行linter并检查项目文件(linter将为您提供路径)
- 如果您依赖第三方Pod,则应使用’-use-libraries’关键字进行整理
- 如果导入静态库,请检查它们是否支持x86_x64和i386体系结构,因为您的库将基于模拟器构建。
如果一切正常,那么恭喜。 80%落后了。
现在,您应该进行一些git工作。
提交并标记最后一个(这将指示您的pod版本)
git commitgit tag 0.1.0(#或您想要的任何版本号)`git push origin 0.1.0(此处的#number与上面的标记号应该相同)
现在,为您的规格加油。 它检查版本设置,存储库等
pod spec lint MyPodTools.podspec
这会有点令人震惊。 但是您向世界提交了图书馆。 您是否想在github evert上查看错误报告?)
现在,瓦拉。 推送您的资料库:
吊舱推入MyPodTools.podspec
如果您是第一次这样做,它将要求您注册:
吊舱树干寄存器nuves101@gmail.com'nuves101'— description ='Mac'
这里的描述用于将来,以使您的机器与众不同,可以从中更新Pod。
注册后,请重试:
吊舱推入MyPodTools.podspec
做完!!!
现在,您可以提交自己的图书馆,并成为贡献世界的一部分。 不要害怕制定自己的解决方案,并与其他开发人员共享。
这是第一项任务,如果您对我的帖子有任何改进或想法,请随时在评论部分分享,因为我们所有人都是在这里获取一些宝贵的知识的knowledge
祝你好运😉
- GoogleAnalytics-iOS-CocoaPods 0.36与Swift
- 用cocoapods使用AdobeMobileLibrary(用于iOS)?
- 如何在iOS应用程序的同一个项目中集成Objective-C和Swift窗格
- 无效的Bundle,捆绑包包含不允许的嵌套捆绑,包含不允许的文件'Frameworks'
- 为什么我们在cocoapod中使用use_frameworks?
- iOS:带有CocoaPods的伞框架
- 无法使用Xcode 7和带有Podfile的GoogleMaps将IOS应用上传到iTunes
- 类X在<framework>和<application>中实现,其中一个将被使用,其中一个是未定义的
- Xcode工作区 – 没有从框架项目窗格中find导入