用python添加iOS Framework的Debug标记
在我们的项目开发中,一些模块的代码会被抽取出来用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的工程文件中是找不到这个配置的,当然也就无法添加了。