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

高质量的佛山网站模板公司交易平台网

高质量的佛山网站模板,公司交易平台网,免费源码下载网站,滨州建设工程备案网站在之前的文章中#xff0c;我们介绍了使用gitlab ci构建Android包的方法。今天我们介绍使用gitlab ci如何构建IOS包#xff0c;并且在打包成功或者失败时#xff0c;如何将消息通知到企业微信。如果对gitlab ci还不熟悉的#xff0c;可以参考之前的文章使用gitlab ci构建An…在之前的文章中我们介绍了使用gitlab ci构建Android包的方法。今天我们介绍使用gitlab ci如何构建IOS包并且在打包成功或者失败时如何将消息通知到企业微信。如果对gitlab ci还不熟悉的可以参考之前的文章使用gitlab ci构建Android包这篇文章我们主要涉及三个知识点IOS开发者证书。IOS打包命令。如何往企业微信发消息。IOS开发者证书IOS打包离不开开发者证书因此首先我们需要先搞清楚IOS的证书是怎么回事它是怎么工作的。为什么需要证书我们知道如果手机不越狱的情况下iphone手机安装app只能通过官方的App Store。这种限制是怎么做到的呢其实很简单主要用到了非对称加密。首先苹果官方生成一堆公私钥在所有的iphone手机里内置了一个公钥在苹果公司的后台保存着私钥。当app开发者上传app到App Store时会用保存在后台的私钥对App进行签名在iphone手机上下载这个app后用手机上的公钥来验证这个签名如果签名验证通过则表示这个app是由苹果后台认证的并且没有被篡改过。基于这种签名机制保证了在iphone手机上安装的每一个app都是经过苹果认证允许的。但是一个新的问题来了如果我们的app还处于开发中还没有上传到appStore该怎么安装到iphone手机上呢这就需要用到开发者证书在中间做一个过渡作用。证书类型常用的开发者证书分为两种一种是个人开发者证书一种是企业开发者证书。其中我们常见的有两种模式In-House企业内部分发可以直接的安装ipa包(一般是将包上传到服务端生成链接点击链接可以下载)。不过最新的ios系统需要在【通用—关于本机—证书信任设置】中对企业证书进行信任。Ad-Hoc相当于是企业分发的限制版限制100个设备安装需要提前在苹果后台配置iphone设备的设备号(可通过第三方工具或者访问蒲公英查询)。需要注意的是由企业证书签名的包是不能上传到App Store的因此需要根据自己公司的情况申请不同的开发者证书。原理介绍上面其实已经提到证书的工作原理是通过非对称加密从网上找了一幅图很好的介绍了这个过程上图对应的步骤如下在mac电脑上申请一对公私钥图中是公钥M和私钥M。对于苹果的证书来说跟App Store工作原理一样在苹果后台服务器放置了私钥A在苹果设备上存放了对应的公钥A。将公钥M上传到苹果后台用私钥A进行签名得到包含公钥M及其签名。同时还有一个Provision profile(大家常说的pp文件)文件(其中包含了AppID、设备列表、App可使用的权限)将证书文件下载到本地mac。在开发app时使用本地的私钥M对app进行签名连同上面的pp文件一起被打包到app中。在安装app时ios系统获取证书通过内置的公钥A去验证app内的证书是正确的。如果能验证通过则可以将App内的证书数据取出来使用公钥M验证App的签名是否正确验证安装app的设备ID是否存在设备列表中等。上面的步骤大致描述了苹果开发者证书的工作原理如果你没太理解也没关系。可以结合着上图多看几遍。另外这里还有个知识点在mac电脑申请的公钥和私钥M只能在申请的电脑使用怎么让其他伙伴也能正常使用呢可以将私钥M导出成.p12文件其他Mac电脑导入私钥M就可以正常使用了。IOS打包首先打包之前需要清理工程(workspace和scheme参数的值需要拿到ios代码才能查看)$ xcodebuild clean -workspace xxxx.xcworkspace -scheme xxxx其次如果你想要ios包的构建号是自动递增的可以使用agvtool这个工具$ agvtool next-version -all接着就可以开始archive包(对Target进行编译、归档生成.xcarchive)。$ xcodebuild -workspace xxxx.xcworkspace -scheme xxxx -configuration Debug archive -archivePath xxxxPath/xxxxx.xcarchive最后就是将归档文件导出生成不同渠道的ipa包$ xcodebuild -exportArchive -archivePath build/$SCHEME_NAME.xcarchive -exportPath build -exportOptionsPlist $EXPORT_OPTIONS_PLIST这里需要指定一个exportOptionsPlist是对导出ipa的配置我这里写的比较简单格式如下compileBitcodedestinationexportmethoddevelopmentsigningStyleautomaticstripSwiftSymbolsteamIDxxxxxxxxthinningnone如果你觉得使用命令行的方式相对麻烦的话可以考虑使用打包工具fastlane(后面我再专门写文章介绍)。发送消息通知企业微信中可以创建一个群机器人然后通过webhook来进行消息通知。企业微信提供了详细的配置方式可以参考企业机器人配置。其本质上就是发送了一个请求curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa \-H Content-Type: application/json \-d {msgtype: text,text: {content: hello world}}我们只需要将key替换成我们创建机器人的key即可。整合之后的.gitlab-ci.yml配置文件最后贴一个我在项目中使用的配置文件如下所示variables:CONFIGURATION: DebugWORKSPACE: xxxx.xcworkspaceSCHEME_NAME: xxxxEXPORT_MAIN_DIRECTORY: buildEXPORT_OPTIONS_PLIST: ExportOptions-dev.plistCODE_SIGN_IDENTITY: xxxxxxPROVISIONING_PROFILE: xxxxxLANG: en_US.UTF-8stages:- makedir- archive- ipa- upload- notify# 创建对应目录dir_job:stage: makedirscript:- mkdir $EXPORT_MAIN_DIRECTORY- EXPORT_MAIN_DIRECTORY$EXPORT_MAIN_DIRECTORY/$(date %Y%m%d%H%M%S)- echo $EXPORT_MAIN_DIRECTORY- mkdir $EXPORT_MAIN_DIRECTORYtags:- ios# 构建archivearchive_job:stage: archivescript:- agvtool next-version -all # 更新构建号版本号之后再更新- xcodebuild clean -workspace $WORKSPACE -scheme $SCHEME_NAME- xcodebuild -workspace $WORKSPACE -scheme $SCHEME_NAME -configuration Debug archive -archivePath $EXPORT_MAIN_DIRECTORY/$SCHEME_NAME.xcarchiveartifacts:expire_in: 2 dayname: 下载xcarchive,保留2天paths:- $EXPORT_MAIN_DIRECTORY/$SCHEME_NAME.xcarchivetags:- ios# 导出ipaipa_job:stage: ipascript:- echo export ipa- xcodebuild -exportArchive -archivePath $EXPORT_MAIN_DIRECTORY/$SCHEME_NAME.xcarchive -exportPath $EXPORT_MAIN_DIRECTORY -exportOptionsPlist $EXPORT_OPTIONS_PLISTartifacts:expire_in: 5 dayname: 下载ipa,保留5天paths:- $EXPORT_MAIN_DIRECTORY/$SCHEME_NAME.ipaonly:- qatags:- ios# 上传ipaupload_job:stage: uploadscript:- curl -H Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7Il9pZCI6IjVlOTE4Yzc5MmMzZGQ0MDAxZTRiOGY1YiIsInVzZXJuYW1lIjoic3VodWNoZW4ddiLCJlbWFdddpbCI6InN1aHVjaGVuQHFxLmNvbSJ9LCJleHAiOjQ3NDAxOTcyODgsImlhdCI6MTU4NjU5NzI4OH0.5UUkM4lJddYrnvXvHaNNJIY_j5OsBQmLw0mBUrXG3d9E4 -F file$EXPORT_MAIN_DIRECTORY/$SCHEME_NAME.ipa http://上传包地址/api/apps/5e916b9eac2363001dd7554a/uploadonly:- qatags:- ios# 构建失败时的通知消息notifyFailWeChat:stage: notifyscript:- curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key26b07c1b-03ea-49da-afc7-f68a359f2a52 -H Content-Type:application/json -d {\msgtype\:\markdown\,\markdown\:{\content\:\ios项目构建结果失败\n本次构建由$GITLAB_USER_NAME 触发\n项目名称$CI_PROJECT_NAME\n提交号$CI_COMMIT_SHA\n提交日志$CI_COMMIT_MESSAGE\n构建分支$CI_COMMIT_BRANCH\n流水线地址[$CI_PIPELINE_URL]($CI_PIPELINE_URL)\}}tags:- iosonly:- qawhen: on_failure# 构建成功时的通知消息notifySuccessWeChat:stage: notifyscript:- curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key26b07c1b-03ea-49da-afc7-f68a359f2a52 -H Content-Type:application/json -d {\msgtype\:\markdown\,\markdown\:{\content\:\ios项目构建结果成功\n请前往发布平台下载体验[下载地址](http://app下载地址)\n本次构建由$GITLAB_USER_NAME 触发\n项目名称$CI_PROJECT_NAME\n提交号$CI_COMMIT_SHA\n提交日志$CI_COMMIT_MESSAGE\n构建分支$CI_COMMIT_BRANCH\n流水线地址[$CI_PIPELINE_URL]($CI_PIPELINE_URL)\}}tags:- iosonly:- qawhen: on_success总结如果你们公司目前还没搞起来Jenkins我推荐尝试用gitlab实现ci/cd流水线因为可以减少很多配置和插件的安装。相对来说实现成本更低一些从目前我用gitlab ci的情况来看基本上Jenkins能实现的gitlab ci都能满足。
http://www.zqtcl.cn/news/169096/

相关文章:

  • 网站设计模板免费国庆图片制作小程序
  • 包头焦点网站建设郑州包装设计公司
  • 建行官方网站首页做跨境电商亏死了
  • 河北智能网站建设平台卖链接的网站
  • 网站建设简单点的服装搭配网站建设策划书
  • 哪一个军事网站做的比较好今天第四针最新消息
  • 黄页网站推广app软件查企业公司用什么软件
  • 网站设计机构培训全自动网页制作系统源码
  • 外贸网站建设收益深圳建设厅官网
  • 跟网站开发有关的内容东莞市生态环境局
  • dw软件做的东西怎么在网站用网站备案抽查通过
  • 重庆建设集团网站首页wordpress主题inn
  • 对京东网站建设的总结湖北做网站的
  • 杭州网站开发后端招郑州工装定制
  • 网站搭建论文filetype ppt 网站建设
  • 个人做营利性质网站会怎么样如何引用网站上的资料做文献
  • 新网站制作市场泰安做网站哪家好
  • 常熟苏州网站建设flash如何制作网站
  • 电商网站都是用什么做的网站服务器维护方案
  • 简述企业网站建设的流程手机怎么自己做网页
  • 网站备案信息管理呼图壁网站建设
  • 网站建设学习资料开发一套软件需要多少钱
  • 大庆网站设计衡阳seo网站推广
  • 基层科普网站建设的现状自己做的网站怎样链接数据库
  • 网站建设工程师的职位要求化妆品行业网站开发
  • 做海报有什么素材网站知乎什么样的蓝色做网站做好看
  • 餐饮网站建设网站wordpress优酷视频插件下载
  • 什么网站做广告效果好wordpress中文cms
  • seo与网站优化广州洲聚网站开发
  • 建一个自己用的网站要多少钱北京网站建设价格天