自定义action主要是编写Fastfile。
编写好的Fastfile可以放在多个组件中使用。
原因:有些action, 并没有人提供; 那么我们可以自己自定来满足我们的需求
示例:在制作私有库的过程中, 如果上一个标签已经存在, 再次创建则会报错;
解决方案: 先判断标签是否存在, 如果存在, 则删除标签(本地/远程)。
自动化流程:
- 安装pod库
cocoapods
- 提交代码到远程代码仓库
git_add
、git_commit
、push_to_git_remote
- 如果标签存在, 则删除本地/远程标签(重要步骤)
- 打标签, 并提交
add_git_tag
、push_git_tags
- 对spec文件进行验证&提交
pod_lib_lint
、pod_push
自定义action及使用
- cd进入本地库根目录
-
fastlane new_action
定义新的航道action - 输入
remove_tag
,会生成actions文件夹和remove_tag.rb,即action对应的ruby文件。 - 打开remove.rb编辑,如果不会可在这里找:https://github.com/fastlane/fastlane/tree/master/fastlane/lib/fastlane/actions,比如在这个页面找git_add。
- 进入根目录,验证定义的action,
fastlane action remove_tag
,成功后会列出该action的相关信息。
-
完善fastlane,把刚才自定义的action用上去。
- 执行航道,
fastlane ManagerLib tag:0.1.0 target:LFRemotePlayer
,报了错找不到tag。是Ruby文件中前后的参数写的不一致导致的。
- 查看远程是否存在提交的文件,pod搜索。
- 宿主工程使用。
遇到的坑
1.当你想查看某个action的描述的时候,如果是在本地私有库的根目录下,则查不到,需退出到该根目录, cd .. 。
2.验证action遇到的错:
3.Ruby文件中前后参数不一致,导致找不到参数错误。
4.封装的sqlite组件安装,要在spec文件中写:s.library = "sqlite3"