iOS 构建Cocoapods开源库


内容概览
  1. 创建Pod模板项目;
  2. 定制podspec;
  3. 安装和配置fastlane;
  4. 配置travis.yml;
  5. 上传到公共库Cocoapods;



创建模板项目


使用Pod的模板,创建项目:

pod lib create LibraryName

例如,现在要创建DemoLibrary。用命令行执行以下命令:

pod lib create DemoLibrary

然后,你会看到以下提示,根据自己的需求选取即可:

What platform do you want to use?? [ iOS / macOS ]
 > iOS
What language do you want to use?? [ Swift / ObjC ]
 > Swift
Would you like to include a demo application with your library? [ Yes / No ]
 > Yes
Which testing frameworks will you use? [ Quick / None ]
 > None
Would you like to do view based testing? [ Yes / No ]
 > No

这些自定义选项选择完毕后,你会看到项目已经在Xcode中打开。



打开Finder,查看项目的文件目录结构:

1306450-844153e26c325bf4.png

DemoLibrary.podspec 和 .travis.yml 就是需要配置的内容。



如果要将DemoLibrary目录中编写的源码用于Example目录中的项目,你需要注意这些事项:

  1. 更新DemoLibrary中的源码,你就需要在Example目录中执行 pod install,然后才可以在Example中使用DemoLibrary中的内容。
  2. 在DemoLibrary中编写的代码,记得使用 public 甚至 open 来提供相应的访问控制权限。否则,在DemoLibrary中定义的类,在Example项目中不可见。
  3. 在某些时候,你可能会在Example项目中遭遇编译错误等情况。这时候,你可以尝试对Example项目进行Clean 操作。



定制podspec



podspec文件用来描述某个版本的Pod Library。其中包含了很多细节,比如:源代码从哪里获取,需要使用哪些文件,用于编译过程的设置参数以及一些元数据(名称、版本、描述)等。



可供参考的podspec:
Kingfisher.podspec
RxCocoa.podspec

你可以使用命令行指令 pod lib lint 来检查你的.podspec是否存在错误,这个指令不需要联网。
也可以使用 pod spec lint,它会检查外部仓库和tag。



另外,如果你的项目还依赖于其他项目,可以在.podspec文件中指定这些依赖:

Pod::Spec.new do |s|
  s.name             = 'TaskCommander'

  ...

  s.dependency 'RxSwift', '~> 4.4.0'
  s.dependency 'Alamofire', '~> 4.8.1'
  s.dependency 'RxAlamofire', '~> 4.3.0'
end

然后在引用这个Library的演示项目(比如上文中DemoLibrary的Example目录)的目录执行 pod install,就可以集成这些依赖库到你的演示项目中。



安装和配置fastlane


fastlane可以通过自动化流程来大幅度减轻测试分发和部署的工作量。
它可以帮你处理很多繁杂的工作,比如:生成屏幕截图、代码签名以及发布你的应用到指定的环境。



这里主要是用来运行单元测试,在travis中可以配置运行fastlane。
然后,通过fastlane来启动单元测试。fastlane中可以定义多个lane。
将不同的lane相互组合,甚至可以完成所有工作(测试、截图、签名、打包、发布等),强大无比!



可供参考的fastlane:
Kingfisher fastlane



可能遭遇的错误:

Bundler could not find compatible versions for gem "bundler"

可参考的解决方案:
https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile



配置travis.yml


travis是有名的持续集成平台。

打开travis官网,用Github帐号即可登录。
登录后,找到设置页面,然后你就可以看到你自己的仓库。
搜索并找到你正在构建的开源库,然后把持续集成的开关打开。



可供参考的travis.yml:
Kingfisher travis.yml



可能遭遇的错误:

Could not find unf_ext-0.0.7.6 in any of the sources

可参考的解决方案:

# 在Gemfile中加入以下内容,然后执行 `bundle update`:
gem "cocoapods"



上传到公共库Cocoapods


# 填写账号信息,注册完要去邮箱点一个验证邮件(邮箱最好和git的邮箱保持一致)
pod trunk register 邮箱 '昵称' --verbose

# 验证完成后可以查看账号信息,比如:Name, Email 等
pod trunk me

# 提交
pod trunk push --allow-warnings



在这一步,可能遭遇的错误:

podspec file patterns: The `source_files` pattern did not match any file.

可参考的解决方案:
https://stackoverflow.com/a/43086482

也可以尝试清理Pod缓存:

pod cache clean --all



成功之后,你会看到以下内容:

 ?  Congrats

 ?  TaskCommander (1.0.1) successfully published
 ?  May 14th, 03:47
 ?  https://cocoapods.org/pods/YourLibrary
 ?  Tell your friends!

可以手动验证一下:

# 可能需要等一段时间,之后才能搜到
pod search LibraryName

# 也可以尝试以下指令
# 将https://github.com/CocoaPods/Specs的内容更新到~/.cocoapods/repos
pod setup




参考文章:
Making a CocoaPod
Using Pod Lib Create
如何制作自己的CocoaPod库



转载请注明出处,谢谢~

CCF大数据与计算智能大赛-面向电信行业存量用户的智能套餐个性化匹配模型联通赛-复赛第二名-【多分类,embedding】.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值