最新版 CocoaPods 的安装流程
(首次安装)移除现有Ruby默认源
(首次安装)使用新的源
(首次安装)验证新源是否替换成功
(可选)更新 gem
安装 CocoaPods
Podfile 文件中的一些写法
1 | # 设置镜像源 |
如何发布开源库到 CocoaPods
说实在话,类似的教程网上很多,基本可以满足大多数人零基础发布 CocoaPods,但是其中可能会遇到一些问题,只有亲自尝试过才知道。
准备工作
1. clone 远程仓库到本地
1 | git clone 你的仓库链接 |
2. 注册 trunk
注册的命令
1 | pod trunk register 你的邮箱 你的用户名 |
记得去邮箱里验证,然后可以输入以下命令查看个人信息
1 | pod trunk me |
步骤
1. 创建 .podspec
1 | pod spec create AXKit |
2. 修改 .podspec
并验证
有很多类似的教程,可以参考。
一个小技巧:你可以去GItHub搜索一些热门的第三方库,然后点击查看这些大牛的
.podspec
是怎么写的。
传送门:YYKit的podspec、ReactiveObjC的podspec、BlocksKit的podspec
最容易出错的地方就是资源路径
1 | s.source_files = "AXKit/**/*.{h,m}" |
常见写法
1 | "Directory1/*" 表示匹配所有文件 |
s.source 常见写法
1 | # 推荐写法:与版本号绑定 |
tag => s.version 表示将这个 Pod 版本与 Git 仓库中相同版本的 comit 绑定
注意
如果仓库中对应的tag是 “v1.0.0”
这样以字母开头的,可以在 #{s.version}
前面加上对应的字母。commit => “68defea” 表示将这个 Pod 版本与 Git 仓库中某个 commit 绑定
验证
1 | pod spec lint AXKit.podspec |
3. 上传到远程仓库
修改 .podspec
时指定的版本号,如 0.0.1
。那么远程仓库中必须始终存在这个版本的 branch
或 tag
才能够下载。建议使用 tag。s.source
中的 tag 需要与远程仓库中的 tag 对应起来。
1 | s.version = "0.0.1" |
这里指向的是 "v0.0.1"
这个分支,因为分支我们用完之后习惯把它删掉,所以这里也可以指向 tag,也就是说打一个 "v0.0.1"
的 tag 并推送到远程就可以了。
1 | git tag v0.0.1 |
这样做的好处就是删掉当前分支不影响 CocoaPods 中指向的仓库源码。
4. 发布到 CocoaPods
1 | pod trunk push AXKit.podspec |
n. 删除一个 podspec 版本
删除的命令是:
1 | pod trunk delete 项目名 版本号 |
官方建议使用 deprecate
来弃用
1 | pod trunk deprecate 项目名 |
这两种方法执行完有很大几率会出现一串很长很长的错误,不要着急,这实际上这是一个 html。把它保存到一个 html 文件中,打开,是个404错误页,原因众所周知。
删除之后立即搜索还是能搜到的,因为有一定的延迟,可能要半个小时才能更新。
pod trunk 命令
在终端输入
1 | pod trunk --help |
可以查看帮助
使用脚本
没必要每次都重复每个步骤,如果你已经发布过一个,可以省去注册的步骤,直接把已经发不过的 podspec 复制一份,改一下仓库模块名,验证通过就可以发布了。
我写了一个便于发布更新的脚本,把脚本放在与 podspec 同级目录下,当你更新了项目之后,如果需要更新到 cocoapods,可以执行此脚本。流程是:
1 | 输入版本号 -> commit、push tag -> pod spec lint -> 询问是否发布(y/n) -> 发布(y) |
应用上传失败
原因可能有很多,有关于 Transporter 的问题可以尝试删除缓存:
删除缓存
重新下载缓存
这个缓存有 60MB (2020年7月份下载实测)
素材规格
iPhone 各代屏幕尺寸与分辨率
经典屏幕设备
iPhone | 对角线 | 缩放 | 逻辑分辨率 | 物理分辨率 | ppi |
---|---|---|---|---|---|
1、3G、3GS | 3.5 | @2x | 320x480 | 320x480 | 163 |
4、4s | 3.5 | @2x | 320x480 | 640x960 | 326 |
5、5s、SE | 4 | @2x | 320x568 | 640x1136 | 326 |
6、6s、7、8、SE2、SE3 | 4.7 | @2x | 375x667 | 750x1334 | 326 |
6 Plus、6s Plus、7 Plus、8 Plus | 5.5 | @3x | 414x736 | 1242x2208 | 401 |
全面屏设备
iPhone | 对角线 | 缩放 | 逻辑分辨率 | 物理分辨率 | ppi |
---|---|---|---|---|---|
X、XS、11 Pro | 5.8 | @3x | 375x812 | 1125x2436 | 458 |
XR、11 | 6.1 | @2x | 414x896 | 828x1792 | 326 |
XS Max、11 Pro Max | 6.5 | @3x | 414x896 | 1242x2688 | 458 |
12 mini、13 mini | 5.4 | @3x | 375x812 | 1080x2340 | 476 |
12、13 | 6.1 | @3x | 390x844 | 1170x2532 | 460 |
12 Pro、13 Pro | 6.1 | @3x | 390x844 | 1170x2532 | 460 |
12 Pro Max、13 Pro Max | 6.7 | @3x | 428x926 | 1284x2778 | 458 |
iPad 各代屏幕尺寸与分辨率
经典屏幕设备
iPad | 对角线 | 缩放 | 逻辑分辨率 | 物理分辨率 | ppi |
---|---|---|---|---|---|
1、2 | 9.7 | @1x | 768x1024 | 768x1024 | 132 |
mini 1 | 7.9 | @1x | 768x1024 | 768x1024 | 163 |
mini 2/3/4 | 7.9 | @2x | 768x1024 | 1536x2048 | 326 |
Air 1/2 | 9.7 | @2x | 768x1024 | 1536x2048 | 264 |
Pro (9.7) | 9.7 | @2x | 768x1024 | 1536x2048 | 264 |
iPad (10.2) | 10.2 | @2x | 810x1080 | 1620x2160 | 264 |
Pro (10.5) | 10.5 | @2x | 834x1112 | 1668x2224 | 264 |
全面屏设备
iPad | 对角线 | 缩放 | 逻辑分辨率 | 物理分辨率 | ppi |
---|---|---|---|---|---|
mini 6 | 7.9 | @2x | 744x1133 | 1488x2266 | 326 |
Air 5 | 10.9 | @2x | 820x1180 | 1640x2360 | 264 |
Pro (11’ 2018) | 11 | @2x | 834x1194 | 1668x2388 | 264 |
Pro (12.9’ 2018) | 11 | @2x | 1024x1366 | 2048x2732 | 264 |
Logo & 启动图
UI 只需要提供一张 1024*1024
尺寸的图即可,开发使用IconKit工具可以直接生成开发需要的各种尺寸的图片及其 json 配置文件,直接拖进 Xcode 工程中就可以使用了。使用传统方式不同尺寸一张一张的切图不仅浪费 UI 的时间,开发也需要一张图一张图往对应位置拖,双方都很麻烦。
如果使用 LaunchImage 方式,需要切各个尺寸的图片,参考iPhone 各代屏幕尺寸与分辨率表,如果需要兼容 iPhone 4、4s 机型,则需要提供一共7种尺寸的图片,如果最低兼容 iPhone5 的话,就只需要提供6种尺寸的图片。
注意:iOS 并不需要
1920*1080
这种尺寸的图片。
icon 素材
iOS 端的切图需要同时提供 @2x 和 @3x 两种尺寸的图片,例如某个名为 “imagename” 的图片需要提供两个文件分别命名为:
1 | imagename@2x.png |
素材名(imagename)命名可以根据公司或团队规范而异,但是两种尺寸的文件的素材名部分要保持一致,唯一的不同就是 @2x
和 @3x
。