cocos集成了打包命令 cocos compile -p ios
在这里并没有应用这个方案,而是编写自己的脚本, 理由如下
- 脚本掌握在自己手中可以第一时间解决和发现bug
- 游戏项目总会出现各种各样定制的需求,官方不可能给出全部的解决方案
查了一下资料xcode 支持命令行
xcodebuild: 编译xcode工程生成app文件
xcrun: 将app文件转换为ipa文件
如果不清楚, 直接命令行 xcodebuild -help即可查看所有命令
为了便于管理和扩展 这里新建了两个文件夹
- build/ios:脚本目录,
- publish/ios:ipa输出目录
直接上脚本, 将XXXX换成自己的证书 文件 和工程路径即可
#!/bin/bash schemeName="$1" outputPath="$2" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd $DIR CertIdentity="XXXXXXX" Profile="XXXXXX" IOS_SDK=iphoneos8.4 projectPath="${DIR}/../../frameworks/runtime-src/proj.ios_mac/XXXX.xcodeproj" if [ ! -d "${outputPath}" ]; then mkdir -p "${outputPath}" fi #xcodebuild -project $projectPath -scheme ${schemeName} -sdk ${IOS_SDK} -configuration Release clean xcodebuild -project "$projectPath" -scheme ${schemeName} -sdk ${IOS_SDK} -configuration Release DEPLOYMENT_POSTPROCESSING=YES CONFIGURATION_BUILD_DIR="${outputPath}" CODE_SIGN_IDENTITY="${CertIdentity}" PROVISIONING_PROFILE="${Profile}" build xcrun -sdk iphoneos PackageApplication -v "${outputPath}/${schemeName}.app" -o "${outputPath}/${schemeName}.ipa"
我们再编写一个python脚本调用shell并传递scheme和outpath参数
# -*- coding: utf-8 -*- import os import datetime class BuildIos: def __init__(self): self.dir = os.path.split(os.path.realpath(__file__))[0] self.outputPath = self.dir + "/../../publish/ios" self.schemeName = "XXXXXXX" def build(self): os.system("sh build_ios.sh " + self.schemeName + " " + self.outputPath) filePrefix = self.outputPath + "/" + self.schemeName #获得当前时间 now = datetime.datetime.now() #转换为指定的格式: otherStyleTime = now.strftime("%Y%m%d%H%M") os.rename(filePrefix + ".ipa", filePrefix + "_" + otherStyleTime + ".ipa") def run(self): os.chdir(os.path.split(os.path.realpath(__file__))[0]) self.build() buildIos = BuildIos() buildIos.run()
以后我们可以继续完善python,比如在不同的平台下 预先进行文件夹的整理,在执行打包脚本之前先将lua编译成字节码并加密,尽情的发挥想象吧!
时间: 2024-10-01 19:37:04