本文以创建开源框架
AMKits
到CocoaPods为示例。
项目地址:https://github.com/AndyM129/AMKits
创建开源库
Pod lib create
首先,cd到想要创建的目录执行:
cd /Users/andy/Workspace/Developer/GitHub
pod lib create AMKits
过程中会想你问几个问题:
- What language do you want to use?? [ Swift / ObjC ]
- Would you like to include a demo application with your library? [ Yes / No ]
- Which testing frameworks will you use? [ Specta / Kiwi / None ]
- Would you like to do view based testing? [ Yes / No ]
- 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
Cloninghttps://github.com/CocoaPods/pod-template.git
intoAMKits
.
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 ]
> iOSWhat language do you want to use?? [ Swift / ObjC ]
> ObjCWould you like to include a demo application with your library? [ Yes / No ]
> YesWhich testing frameworks will you use? [ Specta / Kiwi / None ]
> NoneWould you like to do view based testing? [ Yes / No ]
> NoWhat is your class prefix?
> AMKRunning 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, seehttps://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:
- 执行
ssh-keygen
以创建ssh key- 然后就是输入密码(即 passphrase,建议都默认)
- 执行
cat ~/.ssh/id_rsa.pub
将ssh key输出后复制- 打开自己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
注意事项
- 在创建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
转载请注明出处。