写在前面
最近有需求需要用动态配置xcode的工程(比如添加文件、添加framework、修改plist、修改build setting),所以研究了一下python,想通过python脚本实现自动化
环境安装
首先第一步肯定是安装python开发环境,一般mac os默认安装python。但是一般是python2,大家可以安装最新的python3。安装方法可以在网上寻找,本文不做详细解释
终端输入python3,就可以查看版本号:
然后就是下载PyCharm的开发工具下载地址
安装三方库
python要想便捷的操作xcode工程,可以安装pbxproj
安装方法:
- 通过命令:
pip install pbxproj - 通过
PyCharm,如下图: 第一步:
第二步:
第三步:
pbxproj的使用
第一步导入,让后通过xcodeProject实例化工程
编辑plist文件
修改plist还要导入plistlib
# 获取plist路径
plist_path = "/Users/xxx/Desktop/xxx/iOSApp/iOSApp/Info.plist"
# 获取plist文件数据
with open(file=plist_path, mode="rb") as fp:
pl = plistlib.load(fp=fp)
bundleID = "com.xxx.xxxx"
# 修改bundle id 版本号,和build版本号
pl["CFBundleIdentifier"] = bundleID
pl["CFBundleVersion"] = "2" # build版本
pl["CFBundleShortVersionString"] = "2.0" # appstore 显示版本
# 保存plist文件信息
with open(file=plist_path, mode="wb") as fp:
plistlib.dump(pl, fp)
#保存修改
project.save()
添加系统Framework
# 添加系统库
def add_systemFrameworks(project, frameworks):
frameworksGroup = project.get_or_create_group("Frameworks")
frameworkOptions = FileOptions(embed_framework=False)
for frameworkName in frameworks:
if len(project.get_files_by_name(name=frameworkName)) < 1:
project.add_file(path="System/Library/Frameworks/" + frameworkName,
parent=frameworksGroup,
tree=TreeType.SDKROOT,
force=False,
file_options=frameworkOptions)
print("add_systemFrameworks:", frameworks)
#调用
systemFrameWorks = ["CoreImage.framework","CoreMedia.framework"]
add_systemFrameworks(project,systemFrameWorks)
添加编译参数
other_links = ["-ObjC", "-l"c++"", "-l"c++abi"", "-l"sqlite3"", "-l"z""]
for flag in other_links:
project.add_other_ldflags(flag)
总结
自己最近也是做python脚本实现xcode自动化相关的东西,所以研究了一下,以博客的形式记录下来.