为有牺牲多壮志,敢教日月换新天。

Github添加CocoaPods公开库

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

一、上传写好的库到github

1.在github上创建一个仓库

 

2.将仓库拉倒本地

复制仓库地址

将刚才复制的地址粘贴到这里

3.上传项目到github

将写好的库放在上一步的目标路径文件夹里。 可以看到sourceTree里新增的文件,将为暂存文件放到已暂存。

点下面提交信息的输入框,勾选下面立即推送,可以同时提交到本地及远程仓库

二、上传到cocoapods 

1.注册cocoapods

pod trunk register 邮箱地址 ‘用户名’ --description='描述信息'
执行成功后打开你的邮箱验证即可。
pod trunk me 命令检查是否注册成功

2.制作podspec文件

方法一:cd 你的仓库所在目录 ---> pod spec create xxx(xxx是你的sdk名)。然后vi xxx.podspec 进入文件中进行配置。(方法一比较麻烦,不推荐)

方法二:拷贝别人的podspec,然后修改一下就可以。 

下面来看看podspec里的内容及含义:

Pod::Spec.new do |s|
s.name = 'LFPickerView'
s.version = '1.0'
s.license = { :type => "MIT", :file => "LICENSE" }
s.summary = '将PickerView,DatePicker封装得更加简单易用,并可搭配UITextField使用'
s.homepage = 'https://github.com/zhanglinfeng/LFPickerView'
s.authors = { '张林峰' => '1051034428@qq.com' }
s.source = { :git => 'https://github.com/zhanglinfeng/LFPickerView.git', :tag => s.version.to_s }
s.requires_arc = true
s.ios.deployment_target = '8.0'
s.source_files = 'LFPickerView/LFPickerView/*.{h,m}'
s.dependency "Masonry"
end
s.name 你的sdk名字
s.homepage 你仓库的主页地址
s.source 仓库地址(注意跟主页地址不一样)及tag 
s.ios.deployment_target 最低支持iOS 8.0
s.dependency "Masonry 依赖第三方库
s.source_files 供别人使用的文件(要根据你的文件路径设置,别搞错了,如下图)

 

然后把这个文件也提交到github。

3.给项目打个tag 

tag要跟上一步制作的podspec文件里的tag一致。

4.上传你的sdk到cocoapods

注意:如果你的cocoapods版本低于1.1.0一定要升级。(怎么升级,升级速度慢失败等,网上一堆教程这里不说了)

cd 到你仓库根目录

pod lib lint 命令,对打上的标签与podspec标记的标签进行比验证

pod trunk push 命令,真正执行分支的推送操作

成功截图如下 

 

然后等几个小时到2天,差不多就可以搜到自己的库了。

pod search 你的sdk名

如果好几天了还搜不到,对于有些类库确实是在Cocoapods中所不存在的,为了确定我们搜索的库是不是真的在Cocoapods的Repos中存在,我们可以到https://cocoapods.org/中进行搜索。如果你的库在Cocoapods里,但pod search 你的sdk名 命令还是搜不到。则执行下面操作:

终端输入rm ~/Library/Caches/CocoaPods/search_index.json

pod search

5.一些使用技巧 

a.使用指定tag

pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'
b.使用指定某次提交,比如你不想频繁打tag,或者要立马使用不想等pod验证
pod 'LFKit/LFBadge', :git => 'https://github.com/zhanglinfeng/LFKit', :commit => '13b65eb'

三、解决一些坑 

1.- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.

解决办法:检查你.podspec文件中s.source_files路径有没有填错 

2.did not pass validation ,due to 1 wanrings (but you can use --allow-warnings to ignore them)

解决办法:在命令后面加--allow-warnings

3. 

- ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information.
- NOTE | [iOS] xcodebuild: xcodebuild: error: 'App.xcworkspace' does not exist.
解决办法:更新你的Cocoapods版本 

 4.- ERROR | xcodebuild:  /Users/zhanglinfeng/Library/Developer/Xcode/DerivedData/App-culgapkleglkstaqypgjlqqpywqh/Build/Products/Release-iphonesimulator/LFKit/LFKit.framework/Headers/LFEncryptDecryptUtil.h:10:9: error: include of non-modular header inside framework module 'LFKit.LFEncryptDecryptUtil': '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.0.sdk/usr/include/CommonCrypto/CommonCryptor.h' [-Werror,-Wnon-modular-include-in-framework-module] 

解决办法:#import <CommonCrypto/CommonCryptor.h>从.h文件拿到.m文件。

======================

四、注册CocoaPods账号

CameraDemo git:(master) pod trunk register xxxxxx@qq.com '用户名'
[!] Please verify the session by clicking the link in the verification email that has been sent to xxxxxx@qq.com

打开邮件中的链接, 这样就成功注册了Cocoapods账号。

检查是否创建成功的命令如下:

➜  CameraDemo git:(master) pod trunk me
  - Name:     用户名
  - Email:    xxxxxx@qq.com
  - Since:    March 24th, 08:07
  - Pods:     None
  - Sessions:
    - March 24th, 08:07 - July 30th, 08:08. IP: 113.92.152.160
➜  CameraDemo git:(master)

五、上传代码到CocoaPods

首先检测文件格式的有效性:

➜  CameraDemo git:(master) ✗ pod spec lint

 -> lottie-ios-OC (0.0.1)
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | [iOS] xcodebuild:  note: Planning build
    - NOTE  | [iOS] xcodebuild:  note: Constructing build description
    - NOTE  | [iOS] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App')

Analyzed 1 podspec.

lottie-ios-OC.podspec passed validation.

➜  CameraDemo git:(master) ✗

警告可以使用--allow-warnings忽略.

出现passed validation就说明通过验证了。然后执行:

pod trunk push lottie-ios-OC.podspec --allow-warnings

pod trunk push

成功的结果如下:

好像这个地方需要等待很长时间~~~

六、检查上传是否成功

pod search lottie-ios-OC

第一次搜索失败:

[!] Unable to find a pod with name, author, summary, or description matching `lottie-ios-OC`

如果搜索不到,建议删除本地的CocoaPods的搜索目录,执行以下命令:

➜  rm ~/Library/Caches/CocoaPods/search_index.json

posted @ 2022-11-20 16:35  为敢技术  阅读(111)  评论(0编辑  收藏  举报