当前位置: 首页 > news >正文

政府网站集约化建设情况四种营销策略

政府网站集约化建设情况,四种营销策略,ppt模板大全图片,免费做网站的问题转载https://segmentfault.com/a/1190000015907713 你是否也在幻想写完代码后,无需打开xcode和android studio,只要执行一个shell脚本,就能把android和ios都打包出来?而且自动帮你传到蒲公英和App Store,接着产品自动…

转载https://segmentfault.com/a/1190000015907713

你是否也在幻想写完代码后,无需打开xcode和android studio,只要执行一个shell脚本,就能把android和ios都打包出来?而且自动帮你传到蒲公英和App Store,接着产品自动去下载测试。而你~~~直接去喝咖啡了。Of course,让笔者带你飞!

注意:本篇仅讲述如何用自动脚本处理,所以已经假设看官们已经能正常手动打包。若有更多繁枝细节,则需要另开篇幅。

准备材料

  • 一台macos主机+显示器,比如:mac-mini
  • 自动构建工具,比如:gitlab-runner、travis-ci、jenkins
  • 苹果开发者认证

macos主机需作为构建工具的节点,并且需要安装如下的软件或操作:

  • git
  • xcode 9.4+
  • xcode -> 设置 -> accounts -> 添加苹果公司认证或者个人认证所用的app_id
  • android studio
  • android sdk
  • java jdk 8

怎么安装可以参考我的初始化教程:react-native搭建教程。


注意:如果你不想搞构建平台,只想简简单单地,那么你可以把下面的那么多代码整合成一个shell脚本,然后在自己的电脑里执行。

打包android

cd android
rm -rf build/ app/build/
./gradlew assembleRelease

最后的apk文件在:android/app/build/outputs/apk/app-release.apk

打包ios

先构建基础包app

cd ios
# 必须先创建目录
mkdir -p build
rm -rf build/archive.xcarchive build/ipa-*# 获取目录名
project_list=`ls | grep .xcodeproj`
project_name=${project_list%%.*}# 打包出app
# 这和你点击 xcode -> Product -> Archive 是一样的效果的。
xcodebuild clean
xcodebuild archive \-project ./${project_name}.xcodeproj \-scheme ${project_name} \-configuration Release \-archivePath ./build/archive.xcarchive

接着我们需要把app导出为ipa格式,这样才能上传到App Store或者测试平台比如:蒲公英 、 fir.im

传到App Store需要导出正式的ipa包,而传到蒲公英需要使用测试ipa包(ad-hoc),所以需要执行两遍


cd ios# 正式ipa包
xcodebuild -exportArchive \-archivePath ./build/archive.xcarchive \-exportPath ./build/ipa-app-store \-exportOptionsPlist ./exportOptions/app-store.plist \-allowProvisioningUpdates# 测试ipa包
xcodebuild -exportArchive \-archivePath ./build/archive.xcarchive \-exportPath ./build/ipa-ad-hoc \-exportOptionsPlist ./exportOptions/ad-hoc.plist \-allowProvisioningUpdates

上面编译肯定是不通过的,因为你缺少两个文件app-store.plistad-hoc.plist。这个你自己其实能找到,那就是在xcode里打包并Export出来的文件夹里,都会有一个ExportOptions.plist文件

clipboard.png
根据你在Export时选择的是App Store 还是 Ad Hoc,分别复制进项目exportOptions/app-store.plist和 exportOptions/ad-hoc.plist

上传蒲公英

笔者用的蒲公英,fir的看官自己去找

PGY_API_KEY=你的api_key
PGY_HOST=https://www.pgyer.com/apiv2/app/upload# ios
IPA=`ls ./ios/build/ipa-ad-hoc/*.ipa`
curl \ --form "file=@$IPA" \--form "_api_key=$PGY_API_KEY" \$PGY_HOST# android
curl \ --form "file=@./android/app/build/outputs/apk/app-release.apk" \--form "_api_key=$PGY_API_KEY" \$PGY_HOST

上传AppStore

其实是先上传到 appstoreconnect.apple.com,和你在xcode里点击Upload To App Store是一样的

先验证是否可以上传

APP_STORE_ACCOUNT=证书创建者账号
APP_STORE_PASSWORD=密码
IPA=`ls ./ios/build/ipa-app-store/*.ipa`/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool \--validate-app \--file "$IPA" \--type ios \--username $APP_STORE_ACCOUNT \--password $APP_STORE_PASSWORD

验证成功的话,你才能上传,否则上传会失败的,不用浪费时间

APP_STORE_ACCOUNT=证书创建者账号
APP_STORE_PASSWORD=密码
IPA=`ls ./ios/build/ipa-app-store/*.ipa`# xcode临时生成的目录,不删除可能导致上传到appStore时失败
rm -rf ~/.itmstransporter/ ~/.old_itmstransporter/# 开始上传
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool \--upload-app \--file "$IPA" \--type ios \--username $APP_STORE_ACCOUNT \--password $APP_STORE_PASSWORD

上传android

从笔者的研究来看,仅小米应用的上传有提供接口,其他应用平台都要手动上传。

注意事项:

1、每个节点机器上都需要生成一个certificate。你需要手动生成,或者利用xcode自动帮你生成。这一步不做无法打包ios
2、前面几次打包,mac会有输入密码的提示,需要及时输入,并务必点击按钮始终允许
3、如果用了gitlab-runner,那么在.gitlab-ci.yml中用 alias altool=xx将无效,即无法识别altool,不知为何.
4、ios打包一定要用macos系统,尝试用linux将得不偿失。android打包倒是可以用linux,但也麻烦的要死,所以为什么不和ios一起呢?
5、各位看官去百度搜索ios打包,肯定是要让你先做react-native bundle做离线包的,其实这一步框架已经帮你处理了,我们可以直接忽略。
6、如果macos作为自动构建的子节点,那么记得做一个开机启动脚本start.command,并把脚本加入用户管理的启动项。为什么是.command后缀而不用.sh后缀?因为.command默认是用Terminal打开的,而.sh默认用xcode打开。两种后缀都可以直接写shell命令。
http://www.lbrq.cn/news/2632141.html

相关文章:

  • 防伪网站怎么做爱站seo工具包下载
  • 适合国人的wordpress主题福州百度快照优化
  • 酒店网站的建设企业培训网
  • 商丘网站建设略奥网服装市场调研报告
  • 家用电脑做网站免费seo网站诊断免费
  • 南昌网站建设有限公司网站流量统计系统
  • 北京工商局网站如何做股东变更百度网站排名搜行者seo
  • 给网站做备案合肥网站推广优化公司
  • 泉州高端网站建设小程序开发一个多少钱啊
  • 东阳企业网站微商城建设搜索引擎优化seo优惠
  • wordpress全站301西安百度竞价外包
  • 网站备案的链接包括哪些内容
  • wordpress修改站名网络营销过程步骤
  • 这么建设新的网站百度浏览器下载安装2023版本
  • 房产信息网站模板磁力链 ciliba
  • 徐州人才网招聘信息网站优化靠谱seo
  • 丰台深圳网站建设公司石家庄头条今日头条新闻
  • 苏州专业做网站的公司百度网盘搜索引擎入口在哪里
  • 临沂城乡建设管理局网站企业自建网站
  • 国外一个做ppt的网站做seo推广公司
  • 自己做视频网站的流程sem投放
  • 网站如何做内链成都新闻最新消息
  • 鞍山做网站的百度收录软件
  • 连江县建设局网站烟台seo外包
  • 西宁网站制作费用是多少钱什么是新媒体营销
  • 二级网站建设方案模板搜索引擎优化自然排名
  • 做网站要的图片斗鱼知名的seo快速排名多少钱
  • 个人在国外网站做电商北京搜索引擎优化seo
  • 做ppt找图片在哪个网站好百度退推广费是真的吗
  • 厦门网站建设高级课程天堂网
  • MySQL definer does not exist 问题分析
  • 聚水潭API数据接口开发手机端网页查询商品仓位库位库存工具,支持扫描识别,预览图片
  • 深入解析Java类加载机制:双亲委派模型的设计与实现
  • 【网络编程】IO多路转接——select
  • 百度智能云给“数字人”发工牌
  • 飞算JavaAI开发平台:重构开发全流程——从需求到工程的智能化跃迁