安装cocoapods
$ sudo gem install cocoapods
搜索库
$ pod search wechat
在git先新建一个repo
license的各大描述
cd 到当前目前下,并把相应的SDK commit上去
创建podspec
$ pod spec creat PodName
编辑podspec
Pod::Spec.new do |s|
s.name = "MagicWindowSDK"
s.version = "3.66.02"
s.summary = "MagicWindowSDK for Cocoapods convenience."
s.homepage = "http://magicwindow.cn/"
s.license = "MIT"
s.author = { "MagicWindow" => "support@magicwindow.cn" }
s.source = { :git => "https://github.com/magicwindow/mw-iossdk.git", :tag => "#{s.version}" }
s.platform = :ios, "7.0"
s.source_files = "MagicWindowSDK/*.{h,m}"
s.public_header_files = "MagicWindowSDK/*.h"
s.resource = "MagicWindowSDK/MagicWindow.bundle"
s.preserve_paths = "MagicWindowSDK/libMagicWindowSDK.a"
s.vendored_libraries = "MagicWindowSDK/libMagicWindowSDK.a"
s.requires_arc = true
s.xcconfig = {
'LIBRARY_SEARCH_PATHS' => '"$(PODS_ROOT)/MagicWindowSDK/MagicWindowSDK"',
'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/MagicWindowSDK/MagicWindowSDK"'
}
s.frameworks = "AdSupport","CoreTelephony","CoreGraphics","CoreFoundation","SystemConfiguration","CoreLocation"
s.libraries = "z","sqlite3.0"
s.dependency "libWeChatSDK"
end
name:pod的名字,与工程名保持一致
version :不是工程的版本号,而是打的tag名字
license:与在新建repo的时候一致
requires_arc:是否支持arc
push podspec 到git
注册trunk帐号
$ pod trunk register 你的邮箱 '用户名'
然后你会收到一封邮件,点击确认
*其实你可以把这当成是在注册一台设备,而不是一个用户账号。
查询注册信息
$ pod trunk me
验证podspec文件的合法性
$ pod spec lint
或者用pod spec lint --verbose 可以看到执行的步骤
以上的命令执行后,不能有任何的error 和 warning,否则后面有会出现问题
将podspec push到cocoapods上
$ pod trunk push PodName.podspec
更新pod库
$ pod setup
删除已经发布的版本号
$ pod trunk delete PodName 3.2.1
添加其他人共同维护某库
$ pod trunk add-owner 公共库名 已注册trunk的邮箱地址
移除某个维护人员
$ pod trunk remove-owner 公共库名 已注册trunk的邮箱地址
------------------------------------------------------------------------------------
小贴士:
1.当trunk push后,pod search查找了一下,如果没有找到,使用setup进行库更新,然后再搜索即可
$ pod setup
2.如果setup进行库更新的时候,遇到CocoaPods was not able to update the`master`这样的错误,删除缓存,再setup即可
$ rm -fr ~/.cocoapods/repos/master
$ pod setup
3.开源发布之后,需要打上tag,否则pod trunk会失败
4.pod第三方库的时候,默认使用的是最大的tag,所以如果pod trunk的时候使用的tag比原来的小,那么pod默认使用的还是原来的版本
比如:old tag:1.33.9,new tag:1.6 ,这时默认使用的还是1.33.9的第三方库
5.[!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run:
`echo "2.3" > .swift-version`.
解决方案:
$ echo "3.0" > .swift-version
6.
- ERROR | [iOS] unknown: Encountered an unknown error(The 'Pods-App' target has transitive dependencies that include static binaries:(/private/var/folders/pr/g9hyr71x4xb50hs2hplpxdd40000gq/T/CocoaPods/Lint/Pods/XXX/xxx.a and /private/var/folders/pr/g9hyr71x4xb50hs2hplpxdd40000gq/T/CocoaPods/Lint/Pods/WechatOpenSDK/OpenSDK1.8.0/libWeChatSDK.a)
错误原因是依赖库包含了静态库.a。虽然这个不影响pod的使用,但是在验证的时候是无法通过的
解决方案:
$ pod spec lint --verbose xxx.podspec --use-libraries