创建自己的开源框架到CocoaPods

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

创建开源库

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:
- https://guides.cocoapods.org/making/using-pod-lib-create.html
( 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 [email protected]: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' => '[email protected]' }
  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 [email protected] "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了。。

相关参考

  • http://blog.csdn.net/houyp520/article/details/9401745
  • http://www.cnblogs.com/feiyu-mdm/p/6568168.html

最后

原文地址:http://www.jianshu.com/p/f39a22252e5f
转载请注明出处。

你可能感兴趣的:(创建自己的开源框架到CocoaPods)