IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【IOS+Jenkins+python】xcode初接触以及ios项目跑动的尝试和py脚本进行jenkins编译 -> 正文阅读

[移动开发]【IOS+Jenkins+python】xcode初接触以及ios项目跑动的尝试和py脚本进行jenkins编译

需求来源

在构建jenkins脚本自动化集成中,iOS应和android保持一致。之前没有接触过iOS开发,首先得将项目跑起来,使用的IDE是Xcode
该需求的Android 实现-【Jenkins】在本地的jenkinsfile中为Android项目gradle.properties配置相关属性并在通过BuildConfig类调用

接触记录

  • 项目从git上clone项目下来,大概就长这样!之前没整过iOS,看得实属有点懵!
    在这里插入图片描述iOS开发需要AppleID,现在公司电脑使用的就是公司邮箱的id,已切换过来了!!!!

  • 虚拟机跑不起来公司的项目,借了台iphone12测试机跑一会。

整个的jenkins File文件项目:
在这里插入图片描述

问题定位

主要目的是通过在build之前对该配置进行修改:
在这里插入图片描述
在jenkins进行Build之前就将上述数据0改为1;这样就变成测试环境了。

解决思路

  • jenkins中同Android一样在web配置一个切换勾选
  • 构建一个新的py脚本专门对上述的AuthConstants.h文件进行修改(后续会在根据这个接着处理开源工作)
  • 在jenkins正式build之前调用上述文件进行修改测试环境配置;思路是通过正则表达式获取并gsed修改参数。在远端的机器上也得加上这个gsed

实际操作

根据上述思路入手,并不需要对iOS的文件进行修改。还是在jenkinsFile中进行修改,那么还是回到Android studio中开发比较熟悉。
在这里插入图片描述

  • 构建一个新的python文件对环境进行检测且要求后续可以对环境配置进行开源操作;不过大学自学一段时间的python语法都忘记了;得回顾一下了!

  • 采用的gsed命令行对文本进行修改,之前没用过这个还得查找资料看看;gsed 实操 flutter IM 集成时批量修改代码

在这里插入图片描述

构建一个h文件预先测试

在这里插入图片描述
在这里插入图片描述
执行如下的代码:

gsed -i s/$/hello/g test.h

使用sed对文件指定行内容修改或者行前后增加内容
执行了三次!!!得到下图结果。
在这里插入图片描述
而执行代码

gsed -i 1a添加的内容 test.h

在这里插入图片描述
功能展示:
在这里插入图片描述
在这里看到一个正则表达式的使用,用来测试一哈:
在这里插入图片描述
效果不如意,唉!
在这里插入图片描述根本没有match到!这个正则到底怎么用才起效呢!!

最终解决

sed替换和正则表达式
简单来说gsed 其实就是 sed的高级版
在这里插入图片描述

在这里插入图片描述

gsed 's/kAppIsAlpha\s*[0-9]*/嫦娥奔月/g' test.h

但是打开源文件发现没有修改!!!!
最后发现得用如下的命令才会真正修改!

gsed -i 's/kAppIsAlpha\s*[0-9]*/kAppIsAlpha 1vhsfsaihewio/g' test.h

在这里插入图片描述

实际操作

正式在实际的修改环境入手试试!在py脚本上运行这个代码先!听大佬们说编译项目的机子好像咩有这个gsed,后续记得在机器上加这个。
python脚本如下:

# 用户检测环境配置切换 2022-04
import os

class CheckEnvironments:
    # 初始化配置
    def __init__(self):
        if "IS_ALPHA_ENV" in os.environ:
            self.is_alpha_env = os.environ.get("IS_ALPHA_ENV")
        
            self.work_space = os.environ.get("WORKSPACE")

    @staticmethod
    def _get_is_alpha_env():
        return os.environ.get("IS_ALPHA_ENV")

    def start_check_environment(self):
        print("[ * ] start check environment.")
        #使用测试环境:AuthConstants.h中的kAppIsAlpha 改为1,而在正式环境则为0;
        if(self.is_alpha_env == 'true')
            check_cmd = "gsed -i 's/kAppIsAlpha\s*[0-9]*/kAppIsAlpha 1/g' {}/GoChat/GoChat/ZegoAuthConstants.h".format(self.work_space)
        else:
            check_cmd = "gsed -i 's/kAppIsAlpha\s*[0-9]*/kAppIsAlpha 0/g' {}/GoChat/GoChat/ZegoAuthConstants.h".format(self.work_space)
            print("[ * ] start check environment.")
        print("[ * ] Parameter is_alpha_env is {}".format(self.is_alpha_env))
        # 执行命令行-gsed通过正则表达式修改参数
        os.system(check_cmd)
        print("[ * ] end check environment.")

在jenkins上也搭建一个IS_ALPHA_ENV的开关接口即可!在清明假期把这个捋清后续回公司上编译机器将这个跑起来试试!

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 23:19:35  更:2022-04-06 23:21:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 21:23:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码