很久之前就听说自动化打包如何方便,只是自己一直没有去尝试过,最近因为项目需求,自己也尝试了一把。关于fastlane网上资料非常多,功能如何强大,自动化测试、证书管理、截屏等。但是我这里只使用自动化打包的功能,毕竟适合自己项目团队的方式才是最好的方式。

安装faltlane以及初始化项目fastlane

  • faltlane的安装就不讲了,请参考官方网站传送门

  • 进入项目工程,初始化fastlane

cd your project path
fastlane init

不知道为什么,用公司电脑每次进到这里就卡住了,翻了墙也不行,更改了源也不行,如果有小伙伴知道请给我留言,不过只要生成了fastlane/Fastfile 文件就行了,后面依然可以操作。

gem sources
https://gems.ruby-china.org/
https://rubygems.org
  • 添加蒲公英插件,成功后,fastlane文件夹出现Pluginfile文件
fastlane add_plugin pgyer

编写Fastfile,打包ad-hoc版本上传蒲公英

  • 编写Fastfile文件,见代码
default_platform(:ios)platform :ios dodesc "上传到蒲公英"# 使用方法:# 1、进入对应项目,添加蒲公英插件 fastlane add_plugin pgyer# 2、运行打包命令 fastlane adhoc name:your_project_namelane :adhoc do |options|name = options[:name]gym(clean:true, # 是否清空以前的编译信息 true:是scheme: name, # 自己项目名称workspace: "#{name}.xcworkspace", # 自己项目名称xcworkspace(使用cocoapods才会生成)export_method:"ad-hoc", #app-store,ad-hoc,enterprise,developmentconfiguration:"AdHoc",output_directory:"./fastlane/build", # 打包后的 ipa 文件存放的目录export_xcargs: "-allowProvisioningUpdates", #访问钥匙串output_name: "#{name}.ipa",# ipa 文件名silent:true,#隐藏没有必要的信息export_options: {provisioningProfiles: {"com.you.bundleIdentifier" => "your_AdHoc" # bundleid,打包用的证书名字}})pgyer(api_key: "your_apikey", # 从蒲公英项目详情中获取的 apikeyuser_key: "userKey", # 从蒲公英项目详情中获取的 userkeypassword: "123456", # 密码update_description: "本次测试更新的文字说明"#"description" # 本次测试更新的文字说明(参数设置))end
end
  • 使用方法
在终端进入项目路径执行命令:fastlane adhoc name:your_project_name
  • 打包之前,在Xcode中配置好Version和Build版本(这里没有使用插件,手动管理),证书要配置正确,之前这里配成了App Store的证书,打包会出现异常

  • 打包上传成功的提示,然后会收到蒲公英的邮件或者短信提醒

falstlane 打包上传App Store

之前在网上查看了一番别人的博客,总的来说就是不能直接拿来用。没办法,自己看了一遍官方文档,研究了一番,探索出了自己的一个版本.现将探索历程记录在下.

官方文档说要上传App Store需要使用deliver官方传送门

  • 第一步进入自己的项目工程初始化deliver
cd [your_project_folder]
fastlane deliver init

这个时候fastlane会让你输入开发者账号和APP的Bundle Identifier,如果Bundle Identifier和iTunes Store中任意一个不存在,deliver会初始化失败.
请在初始化之前创建对应的APP ID 和iTunes Store中创建对应APP.

初始化完成之后会,fastlane会下载iTunes Store中APP的配置信息(如果之前配置了)
效果如下:

  • 根据官方文档的描述,编写Deliverfile文件
    利用Deliverfile文件配置iTunes Store需要填写配置相关的信息(不明白的信息和iTunes Store中对照下就知道了)
# The Deliverfile allows you to store various iTunes Connect metadata
# For more information, check out the docs
# https://docs.fastlane.tools/actions/deliver/# 根据iTunes Store 信息设置username "12345678@qq.com"  # Apple ID email addressapp_identifier("com.my.MyFastLaneDemo") # bundle identifier#ipa("./fastlane/release_ipa/My.ipa") #  如果没有这个选项,只有metadata会被上传 ipa路径copyright("版权信息 2018") #版权信息#submit_for_review(false) #是否提交审核,true表示立马提交审核screenshots_path("./fastlane/screenshots") # 截屏图片展示price_tier 0 #app 出售价格trade_representative_contact_information(  #iTunes store 综合信息处信息first_name: "jie", #名last_name: "wang", #姓address_line1: "软件园", #地址address_line2: "",address_line3: "",city_name: "Chengdu", # 城市state: "SICHUAN", # 省country: "China", #国家postal_code: "610000", # 邮编phone_number: "+86 18283606699", # 手机email_address: "2186682180@qq.com", #邮箱
)app_review_information( # app审核信息first_name: "jie", # 名last_name: "wang", #姓phone_number: "+86 18283606699", #联系信息电话号码email_address: "2186682180@qq.com", #联系信息邮箱demo_user: "12345678",  #审核测试账号demo_password: "1234", # 审核测试密码notes: "备注信息" # iTunes Store 审核信息备注
)#提交审核信息:加密, idfa 等
submission_information({    # 参数参考地址  https://github.com/fastlane/fastlane/blob/master/spaceship/lib/spaceship/tunes/app_submission.rbexport_compliance_encryption_updated: false,export_compliance_uses_encryption: false,content_rights_contains_third_party_content: false,add_id_info_uses_idfa: false
})# 模板参考地址 https://github.com/fastlane/fastlane/blob/master/deliver/assets/example_rating_config.json
app_rating_config_path "./fastlane/metadata/itunes_rating_config.json" #年龄分级配置name({
'zh-Hans' => "MyFastLaneDemoTest"  # app名称
})description({ #iTunes Store 中描述信息'zh-Hans' => "APP的描述信息,用于APP功能的描述和介绍不能少于10个字符"
})release_notes({'zh-Hans' => "第一个版本测试" #这个新版本信息,iTunes Store 新增内容处该填的内容
})keywords( # 收缩关键词"zh-Hans" => "FastLane, 美女"
)promotional_text( # 本地化宣传文本信息介绍"zh-Hans" => "本地化宣传文本信息介绍",
)support_url({ # 技术支持网址(URL)'zh-Hans' => "http://www.baidu.com"
})marketing_url({ #营销网址'zh-Hans' => "http://www.baidu.com"
})privacy_url({'zh-Hans' => "http://www.baidu.com"
})app_icon('./fastlane/metadata/AppIcon.png') #应用图标1024 * 1024primary_category("Utilities") #类别设置  参考网站https://docs.fastlane.tools/actions/upload_to_app_store/#reference
# primary_first_sub_category "Card"
# primary_second_sub_category "Casino"
# 要设置的次要类别 无
# secondary_category
# 设置的次要第一个子类别 无
# secondary_first_sub_category
# 设置的次要第二个子类别 无
# secondary_second_sub_categoryautomatic_release true #审核过之后自动发布
  • 编辑Fastfile文件,编写打包release版本代码
default_platform(:ios)
platform :ios dodesc "打包release版本"
# 运行打包命令 fastlane buile_release name:your project namelane :buile_release do |options|name = options[:name]gym(clean:true, # 是否清空以前的编译信息 true:是scheme: name, # 自己项目名称workspace: "#{name}.xcworkspace", # 自己项目名称xcworkspace(使用cocoapods才会生成)export_method:"app-store", #app-store,ad-hoc,enterprise,developmentconfiguration:"Release",output_directory:"./fastlane/release_ipa", # 打包后的 ipa 文件存放的目录export_xcargs: "-allowProvisioningUpdates", #访问钥匙串output_name: "#{name}.ipa",# ipa 文件名silent:true, #隐藏没有必要的信息include_bitcode: true,export_options: {provisioningProfiles: {"com.you.bundleIdentifier" => "your_appStore" # bundleid,打包用的证书名字,这里也可以采用参数传递,看个人喜好吧}})enddesc "Upload to App Store"lane :upload do |options|deliver( #提交App Store审核ipa:"./fastlane/release_ipa/#{options[:name]}.ipa", #ipa路径force : false, #是否跳过网页审查,上传过程中会形成一个预览界面submit_for_review(true) #上传成功后立马提交审核) end# 使用方法 fastlane build_upload name:your project namedesc "build relese ipa and upload to App Store"lane :build_upload do |options|buile_release(options)upload(options) #提交App Store审核end
end
  • 使用方法:进入项目工程
fastlane build_upload name:your project name
  • 演示效果

问题

由于mac系统更新或者其他原因导致fastlane的问题。

Ignoring gem-wrappers-1.3.2 because its extensions are not built.  Try: gem pristine gem-wrappers --version 1.3.2
Ignoring unf_ext-0.0.7.5 because its extensions are not built.  Try: gem pristine unf_ext --version 0.0.7.5
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems.rb:241:in `bin_path': can't find gem fastlane (>= 0.a) (Gem::GemNotFoundException)from /usr/local/bin/fastlane:22:in `<main>'

解决办法:

1、指定默认的ruby版本
rvm use 2.3.7 --default
2、重新安装
brew cask reinstall fastlane
3、然后看控制台信息
Updating installed gems
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz)
Cleaning up installed gems...
Clean Up Complete
Detected shell config file at path '~/.bash_profile'
Please add the following line to your bash profile:export PATH="$HOME/.fastlane/bin:$PATH"After doing so close the terminal session and restart it to start using fastlane ?
?  fastlane was successfully installed!
-----------------------------
最后在.bash_profile写入环境变量
vim ~/.bash_profile
export PATH="$HOME/.fastlane/bin:$PATH"

企业包Fastfile的配置

利用Fastfile自动打包企业包上传到蒲公英的Fastfile文件编写配置

default_platform(:ios)platform :ios dodesc "上传到蒲公英"# 运行打包命令 fastlane inhouse_release name:moffice scheme_name:coaplane :inhouse_release do |options|name = options[:name]scheme_name = options[:scheme_name] #如果是单target项目可以不配置这个xcode_select "/Applications/Xcode.app"gym(clean:true, # 是否清空以前的编译信息 true:是scheme: scheme_name, # 自己项目名称workspace: "#{name}.xcworkspace", # 自己项目名称xcworkspace(使用cocoapods才会生成)export_method:"enterprise", #app-store,ad-hoc,enterprise,developmentconfiguration:"Release", # Release  Debugoutput_directory:"./fastlane/build", # 打包后的 ipa 文件存放的目录export_xcargs: "-allowProvisioningUpdates", #访问钥匙串output_name: "#{name}.ipa",# ipa 文件名silent:true,#隐藏没有必要的信息export_options: {provisioningProfiles: {"bundleid" => "证书名字" # bundleid,打包用的证书名字}})pgyer(api_key: "api_key", user_key: "user_key", password: "123456", # 密码update_description: "无"#"description" # 本次测试更新的文字说明(参数设置))end
end

初窥 fastlane 一键打包上传蒲公英平台和App Store相关推荐

  1. android 蒲公英 类似平台,Jenkins之android APP打包上传蒲公英平台

    1. 需求 实现android项目的系统化打包以及各版本apk归档管理并通过蒲公英平台API自动上传到蒲公英平台(之前是android开发自己开发工具手动打包再上传蒲公英) 2. 实现方式 jenki ...

  2. Jenkins实现android自动打包 上传蒲公英及fir.im

    下载jenkins https://jenkins.io/index.html 下载后得到jenkins.msi文件,直接安装 访问http://localhost:8080 选择安装推荐的插件之后进 ...

  3. Android上传蒲公英平台脚本

    ####1.前言 使用jenkins实现持续集成,需要编写上传蒲公英平台的脚本 本文目的提供一个比较通用且优雅的脚本,遇到这个问题的同学点个赞? ####脚本 #!/usr/bin/env bash ...

  4. 上传IPA包到App Store​

    我们都经历过上传IPA包到App Store时的痛苦!!!​ 第一步:通过Xcode-> Archive,Validate App,成功!​ 第二步:通过Xcode-> Archive,D ...

  5. 上传IPA包到App Store

    我们都经历过上传IPA包到App Store时的痛苦!!! 第一步:通过Xcode-> Archive,Validate App,成功! 第二步:通过Xcode-> Archive,Dis ...

  6. Android使用Gradle一键打包上传到蒲公英

    Android每次打包送测时都要发送.apk文件,特别麻烦,有没有像ios端那样可以一键打包并上传到第三方平台呢?自己网上查找了一圈,最后选择用Gradle的Task方式一键打包并上传到蒲公英平台. ...

  7. Android——Gradle自动打包上传蒲公英并进行钉钉群提醒

    开发测试阶段频繁打包未免太过枯燥,自动打包发布解放双手.上一节我们分析了fastlane打包发布的过程,嗯~总体来说有点繁琐,而且Android使用fast lane自动打包网上资料比较少,出错之后解 ...

  8. IOS-APP自动化打包上传蒲公英Shell版

    #!/usr/bin/env bash # name: adminecho "~~~~~~~~~~~~~~~~开始执行脚本~~~~~~~~~~~~~~~~" #开始时间 begin ...

  9. iOS基于jenkins打包+上传蒲公英+钉钉群通知

    背景:iOS稍微大一点的项目,archive一次需要十几分钟,对开发而言,有时候需要切换分支打包,如果异地办公的情况还要提供测试包,非常麻烦,所以提供远程打包是必不可少的. 一.本地配置jenkins ...

最新文章

  1. 为什么使用缩进来分组语句?15个为什么,帮助你更好的理解Python!
  2. mysql 查询某字段值全是数字
  3. 2022速卖通328大促活动招商规则出炉啦,热销高潜产品抢先看
  4. 33种编程语言为您送上祝福,新年快乐!
  5. 使用gitlab初次上传代码
  6. 内建函数(builtins)和functools
  7. python 与_Python基础 第一个 Python 程序
  8. Linux复习-常见命令及文件操作
  9. idea环境下lombok插件的安装和使用
  10. VSCODE同步浏览器刷新
  11. 千千静听皮肤急速合成器
  12. 界面音效以及3D音效通过参数控制声音加载声音资源包
  13. 一位码农的人生自述(四十九)------大二学年自我总结
  14. 关于语言发育迟缓的孩子
  15. 夏天最美丽的就应该是荷花了
  16. Netty网络编程实战2,使用Netty开发聊天室功能
  17. 拳王虚拟项目公社:拳王的个人IP打造之路,助你百度霸屏,与个人成长学习经历分享
  18. python算三角形面积怎么样保留两位小数_通过坐标计算三角形面积
  19. Gitment给基于hexo的yilia主题的博客搭建免费评论系统
  20. 个人总结-研一上学期

热门文章

  1. BookKeeper设计介绍及其在Hadoop2.0 Namenode HA方案中的使用分析
  2. Mac-Brew介绍
  3. flush()的使用
  4. 基于海思AI芯片的智能视频分析边缘网关
  5. Oracle执行UPDATE语句的步骤
  6. 7.26 3 教育的长久回报期
  7. 数电快速入门(五)(编码器的介绍以及通用编码器74LS148和74LS147的介绍)
  8. 小程序官网CMS开源项目出炉,Weixin-App-CMS 1.0 版本正式发布
  9. 美式口语发音技巧:《影子跟读》
  10. 【RDMA】RoCE网络QoS|应用层设置PFC等级|Tos|Priority|TC