创建自己的开源框架到CocoaPods

本文以创建开源框架AMKits到CocoaPods为示例。 项目地址:github.com/AndyM129/AM…

创建开源库

Pod lib create

首先,cd到想要创建的目录执行:

cd /Users/andy/Workspace/Developer/GitHub
pod lib create AMKits
复制代码

过程中会想你问几个问题:

  1. What language do you want to use?? [ Swift / ObjC ]
  2. Would you like to include a demo application with your library? [ Yes / No ]
  3. Which testing frameworks will you use? [ Specta / Kiwi / None ]
  4. Would you like to do view based testing? [ Yes / No ]
  5. What is your class prefix?

以上问题可根据自己需求选择答案,1为项目中主要使用的语言,2为是否需要在工程中加一个Demo工程,3为需要使用的测试库,4为是否基于View测试,5是项目使用的类的前缀。目前建议选择1.Objc,2:Yes,3:None,4:No,5:AMK。

注:以上问题已调整为如下示例。

localhost:Desktop andy$ pod lib create AMKits Cloning https://github.com/CocoaPods/pod-template.git into AMKits. Configuring AMKits template.

------------------------------

To get you started we need to ask a few questions, this should only take a minute.

If this is your first time we recommend running through with the guide: - guides.cocoapods.org/making/usin… ( hold cmd and double click links to open in a browser. )

What platform do you want to use?? [ iOS / macOS ] > iOS

What language do you want to use?? [ Swift / ObjC ] > ObjC

Would you like to include a demo application with your library? [ Yes / No ] > Yes

Which testing frameworks will you use? [ Specta / Kiwi / None ] > None

Would you like to do view based testing? [ Yes / No ] > No

What is your class prefix? > AMK

Running pod install on your new library.

Analyzing dependencies Downloading dependencies Installing AMKits (0.1.0) Generating Pods project Integrating client project

[!] Please close any current Xcode sessions and use AMKits.xcworkspace for this project from now on. Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.

Ace! you're ready to go! We will start you off by opening your project in Xcode open 'AMKits/Example/AMKits.xcworkspace'

To learn more about the template see https://github.com/CocoaPods/pod-template.git. To learn more about creating a new pod, see https://guides.cocoapods.org/making/making-a-cocoapod. localhost:Desktop andy$

在Github上创建项目

打开https://github.com/new新建代码库,然后将刚刚通过Pod创建的本地代码库推到github上来。

cd /Users/andy/Workspace/Developer/GitHub/AMKits
git remote add origin git@github.com:AndyM129/AMKits.git
git push -u origin master
复制代码

Permission denied (publickey).

fatal: Could not read from remote repository.

Please make sure you have the correct access rights

and the repository exists.

若提示如上信息,则需要重新创建ssh key:

  1. 执行ssh-keygen以创建ssh key
  2. 然后就是输入密码(即 passphrase,建议都默认)
  3. 执行cat ~/.ssh/id_rsa.pub将ssh key输出后复制
  4. 打开自己github的右上角edit your profile 里找到ssh key,点击add ssh key,把ssh key粘贴在这里,输入title(随便填),接着就可以继续push了~

发版

编辑podspec文件(按需修改version 参数)

Pod::Spec.new do |s|
  s.name             = 'AMKits'
  s.version          = '0.1.0'
  s.summary          = 'Summary of AMKits.'
  s.description      = <<-DESC
                        A description of AMKits.
                       DESC
  s.homepage         = 'https://github.com/AndyM129/AMKits'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'Andy Meng' => 'andy_m129@163.com' }
  s.source           = { :git => 'https://github.com/AndyM129/AMKits.git', :tag => s.version.to_s }
  s.social_media_url = 'http://www.jianshu.com/u/28d89b68984b'
  s.ios.deployment_target = '8.0'
  s.source_files = 'AMKits/Classes/**/*.{h,m}'
  s.resource_bundles = {
    'AMKits' => ['AMKits/Assets/**/*.png']
  }
  s.public_header_files = 'AMKits/Classes/**/*.h'
  s.frameworks = 'UIKit'
end
复制代码

push文件

# 更新pod
cd /Users/andy/Workspace/Developer/GitHub/AMKits/Example
pod update --no-repo-update

# push文件
cd /Users/andy/Workspace/Developer/GitHub/AMKits
git add .
git commit -am "Update and prepare to publish."
git push

# 打tag
git tag 0.1.0
git push --tags
复制代码

提交

# 校验
cd /Users/andy/Workspace/Developer/GitHub/AMKits
pod spec lint AMKits.podspec --allow-warnings

# 如果没有注册过Trunk需要注册下,然后校验收到的邮件,然后执行 pod trunk me 命令可以检验注册结果
pod trunk register andy_m129@163.com "Andy Meng"

# 提交
pod trunk push AMKits.podspec --allow-warnings --use-libraries

# 然后开源组件就被推送到 CocoaPods 主仓库中了,可以执行以下命令验证下
pod search AMKits

# 建议发版后再创建并push到对应version分支上,以保存代码
git checkout -b 0.1.0
git push --set-upstream origin 0.1.0

复制代码

注意事项

  1. 在创建pod之前,最好先在CocoaPods 指定的网页上查一下,这个名字有没有被占用,我就踩了这个坑——原本命名是AMKit的,无奈已被抢注,只好改名为AMKits了。。

相关参考

最后

原文地址:juejin.cn/post/687304… 转载请注明出处。

分类:
iOS
标签: