用python添加iOS Framework的Debug标记

作者: shaneZhang 分类: ios技术 发布时间: 2019-03-26 10:28

在我们的项目开发中,一些模块的代码会被抽取出来用Framework的方式进行先行编译,那么这就导致了在主工程中的config配置无法同步设置Framework的工程配置。于是我通过了python脚本进行在jenkins编译的时候修改Framework工程的Debug宏定义标记,这样可以在debug打包的时候执行下脚本,如果不执行脚本默认就是用release打出Framework。这样就实现了无侵入式的添加Debug标记了。python代码如下:

#!/usr/bin/python
#Framework.py
# -*- coding: UTF-8 -*-
import sys

filePath =sys.argv[1]
print 'params is:' +  filePath + ' '
fileContent = ''
f = open(str(filePath))
file = f.readlines()
lineNumber = 0
beginStatus = False
hasDebugFlag = False
for item in file:
    lineNumber = lineNumber + 1
    if 'GCC_PREPROCESSOR_DEFINITIONS = (' in item:
        beginStatus = True
        print 'beginStatus in line :'+ str(lineNumber)

    if 'DEBUG=1' in item and beginStatus == True:
        hasDebugFlag = True
        print 'find DebugFlag in line :' + str(lineNumber)

    if ');' in item and beginStatus==True:
        beginStatus = False
        print 'endStatus in line :' + str(lineNumber)
        if hasDebugFlag == False:
            fileContent += '"DEBUG=1",\n'
            print 'add DebugFlag in line :' + str(lineNumber)
        hasDebugFlag = False
    if 'GCC_PREPROCESSOR_DEFINITIONS = ""' in item:
        fileContent += 'GCC_PREPROCESSOR_DEFINITIONS = ( \n'
        fileContent += '"DEBUG=1",\n'
        item = ');\n'
        print 'add DebugFlag in line :' + str(lineNumber)
    fileContent += item
f.close()
#  写入文件
fo = open(str(filePath), "wb")
fo.write(fileContent)
# 关闭打开的文件
fo.close()
本标签使用的前提是release的GCC_PREPROCESSOR_DEFINITIONS需要先行配置为空串,如果默认不配置的话那么在XCode的工程文件中是找不到这个配置的,当然也就无法添加了。

如果觉得我的文章对您有用,请随意打赏。如果有其他问题请联系博主QQ(909491009)或者下方留言!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注