同步操作将从 Gifan/AutoPackCreator 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
-p,--path 打包的项目路径(必填)
-c,--channel 打包对应的渠道(必填)
-d,--debug 是否是debug版本(可选,默认false,目前是对特定项目有用,可忽略)
-v 打包的版本号(可选,格式x.x.x,如果传入则以传入版本号为准,否则以pack.config.yml与本地缓存的pack.config.json配置检测比较取版本号最大值为准)
-h,--help 帮助说明(可选)
-t 小游戏后台上传描述,字节微信等
-b 是否是构建bundle(仅用于安卓)//2021-08-11更新
-bn 自家聚合实名认证BMS名称(仅用于安卓)//2021-10-26更新
-bv 自家聚合实名认证BMS版本(仅用于安卓)//2021-10-26更新
注:pack.config.yml
配置为windows系统下配置,pack.configios.yml
为mac系统下配置,主要区别是路径
CocosCreator构建生成安卓工程之后是通过执行proj.android-studio目录下的gradlew.bat批处理文件打包的
目前默认是通过传入参数assembleRelease生成Release包,如果需要打Debug包可以修改为assembleDebug,打包App Bundle则传入bundleRelease生成Release包
包名修改:目前CocosCreator构建工程包默认采用了项目[local|settings]/builder.json下包名参数直接修改因为后期构建安卓工程后需要再根据自定义打包配置再修改build.gradle配置
// 读取build.gradle文件
const abgPath = path.join(this._androidDir, 'app', 'build.gradle');
let gradleData = readFileSync(abgPath).toString();
// 匹配包名
let matcher1 = /applicationId[ ]+\"[a-zA-Z0-9_.]+\"/;
// 使用pack.config.yml配置的渠道包名修改
gradleData = gradleData.replace(matcher1, `applicationId "${channelInfo.packageName}"`);
writeFileSync(abgPath, gradleData);
versionCode,versionName修改,build.gradle修改对应配置
android {
// ...
defaultConfig {
versionCode 100
versionName "1.2.6"
if (project.hasProperty('VERSION_CODE')) {
versionCode Integer.parseInt(VERSION_CODE)
}
if (project.hasProperty('VERSION_NAME')) {
versionName VERSION_NAME
}
}
// ...
}
通过执行gradlew.bat批处理执行的时候传入参数 -PVERSION_CODE=110 -PVERSION_NAME=1.1.0 添加gradle属性即可(-P是添加参数,想添加啥就啥,注意-P与参数名是连在一起的)
输出apk路径修改:gradlew.bat批处理传入参数 -POUT_PUT_DIR通过修改build.gradle配置中,如下修改目录路径以及apk文件名(注:如果出现打包异常语法有问题,可能是gradle版本导致的)
android.applicationVariants.all { variant ->
// ...
variant.outputs.all {
if(project.hasProperty("OUT_PUT_DIR")){
variant.getPackageApplication().outputDirectory = new File(OUT_PUT_DIR);
}
def outputFile = outputFileName
if(outputFile != null && outputFile.endsWith('.apk')){
if (android.defaultConfig.versionName != null) {
outputFileName = outputFileName.replace(".apk", "-${android.defaultConfig.versionName}.apk")
}
}
}
}
//gradle 6.7用以下方法
// 打包完成后复制到的目录
def outputFileDir = "${project.projectDir.absolutePath}/apk/${variant.buildType.name}/${variant.versionName}"
//确定输出文件名
def today = new Date()
def path = ((project.name != "app") ? project.name : rootProject.name.replace(" ", "")) + "_" +
variant.flavorName + "_" +
variant.buildType.name + "_" +
variant.versionName + "_" +
today.format('yyyyMMddhhmm') +
".apk"
variant.outputs.forEach {
it.outputFileName = path
}
// 打包完成后做的一些事,复制apk到指定文件夹
variant.assemble.doLast {
File out = new File(outputFileDir)
copy {
variant.outputs.forEach { file ->
copy {
from file.outputFile
into out
}
}
}
}
输出bundle路径修改:基本同apk,在build.gradle文件下新增**(2021-08-11更新)**
tasks.whenTaskAdded { task ->
if (task.name.startsWith("bundleRelease")) {//如果该任务是bundleRelease
def renameTaskName = "rename${task.name.capitalize()}Aab"
def flavor = task.name.substring("bundle".length()).uncapitalize()
def destnadir = "${buildDir}/outputs/bundle/${flavor}/"
if(project.hasProperty("OUT_PUT_DIR")) {
destnadir = OUT_PUT_DIR
}
tasks.create(renameTaskName, Copy) {//创建一个复制任务
def path = "${buildDir}/outputs/bundle/${flavor}/"
from(path)
include "${project.name}-release.aab"
destinationDir file(destnadir)
rename "${project.name}-release.aab", "${project.name}-release-${android.defaultConfig.versionName}.aab"
}
task.finalizedBy(renameTaskName)
}
}
CocosCreator构建工程后是通过xcodebuild命令进行自动构建打包,
1.国内ios接入聚合基础sdk的需要在工程目录下的info.plist文件添加2个字段 BMSName BMSVersion ,用于控制防沉迷实名认证等(自行获取传给sdk)
2.ExportOptionsDevelop.plist
打开发版IPA需要用到该文件,该文件可以通过xcode手动打一次development的包,在导出的ipa文件同目录下有一个ExportOptions.plist
文件,修改文件名为->ExportOptionsDevelop.plist
3.ExportOptionsAppStore.plist
打包上传AppStore需要用到该文件,该文件可以通过xcode手动打一次AppStore的包,在导出的ipa文件同目录下有一个ExportOptions.plist
文件,修改文件名为->ExportOptionsAppStore.plist
4.把2,3点的两个文件中放置到项目根目录(proj.ios_mac)
下载jenkins window系统版本安装
安装过程会提示推荐安装的jenkins插件,直接默认安装即可
创建管理员用户
Manage Jenkins->SystemConfiguration->Manage Plugins 安装Extended Choice Parameter Plug-In插件,gitlab没安装的话也安装一下gitlab插件
Manage Jenkins->SystemConfiguration->Manage Nodes and Clouds 新建一个固定节点(Cocos打包必须要在Agent模式下才可以)
新建Item->创建一个自由风格的项目,添加相关参数,配置源码管理提供gitlab,添加构建命令
后面选择对应渠道,输入版本号,点击构建即可
2021-08-11更新
1.新增选择构建安卓App Bundle包,用于上传谷歌商店
2021-10-26
2.新增安卓自家聚合sdk修改AndroidManifest配置中的bms版本号以及bms位置表示
3.新增ios打包流程
4.更新ios打包参数
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。