iOS 自动打包(python实现)
前一段时间突然有一位同事问起iOS app自动打包的问题,今天就在聊一下,其实很简单,主要利用系统的提供的两个工具xcodebuild 和 xcrun。
xcodebuild
是苹果提供的打包项目或者工程的命令,可以通过man xcodebuild来了解xcodebuild的具体用法。
在这里总结一下xcodebuild的常用方法:
1、需要在包含 name.xcodeproj 的目录下执行 xcodebuild 命令,且如果该目录下有多个 projects,那么需要使用 -project 来指定需要 build 的项目
2、在不指定 build 的 target 的时候,默认情况下会 build project 下的第一个 target,所以一般情况下需要指定target (-target targetName)
3、 当 build workspace 时,需要同时指定 -workspace 和 -scheme 参数,scheme 参数控制了哪些 targets 会被 build 以及以怎样的方式build (使用cocoapods生成的xcworkspace)
4、还可以通过指定参数configuration 来指定编译方式Debug和Release(-configuration Release)
5、通过附加action动作来指定打包动作,build,analyze,achive,test,installsrc,install,clean;(默认为build)
6、通过[buildsetting=value ...]来覆盖工程中已有的配置,比较常用的是设置签名证书的时候;CODE_SIGN_IDENTITY='%s' %certificateName
7、有一些诸如 -list, -showBuildSettings, -showsdks 的参数可以用作查看项目或者工程的信息,不会对 build action 造成任何影响,可以放心使用
常用的方法如下:
if isWorkSpace:
os.system("cd %s;xcodebuild -workspace %s.xcworkspace -scheme %s CODE_SIGN_IDENTITY='%s' -derivedDataPath build/"%(mainPath,targetName,targetName,certificateName))
else:
os.system("cd %s;xcodebuild -target %s CODE_SIGN_IDENTITY='%s'"%(mainPath,targetName,certificateName))
xcrun
xcrun命令通过app文件,来生成ipa文件(包含了签名的过程)
常见的用法如下:
os.system ("cd %s;xcrun -sdk iphoneos PackageApplication -v %s/%s.app -o %s/%s.ipa CODE_SIGN_IDENTITY='%s'"%(mainPath,appPath,targetName,mainPath,targetName,certificateName))
最后附上我根据自己需要写的打包脚本
源代码请点击这里