Skip to content

打包工具

IMPORTANT

U8SDK打包客户端桌面版采用的是开源组件Electron+Vue进行跨平台开发;但是您也不用担心,打包桌面客户端只是用到了他们很基础的部分。如果需要进行二次开发,您不需要详细了解他们,但是简单的了解将能让你更快上手。

本文档介绍U8SDK 打包客户端桌面版源码工程的导入和配置,以及发布方式;需要使用nodejs,如果电脑上还没有安装过nodejs,请先下载并安装nodejs: 下载地址; 推荐使用HBuilder X进行开发环境搭建: 下载地址

项目结构

U8SDK 打包客户端桌面版工程目录,符合完整的Vue Cli 4创建的工程目录结构,为了使用Electron发布多平台的安装程序, 我们使用vue-cli-plugin-electron-builder开源工具创建了开发工程。 整个工程目录结构,也完全符合Vue Cli规范。

U8SDK 打包客户端工程目录结构

1、 dist_electron: 发布目录,使用编译命令之后,生成的安装程序就在这个目录下

2、 node_modules: 使用npm install相关依赖之后,项目相关的依赖库会下载到该目录下,不需要手动更改该目录下的内容

3、 public: 和普通的vue工程中public目录性质一样, 该目录下的所有文件不会经过webpack处理

4、 runtime: U8SDK自定义发布组件目录,该目录下主要放置了u8sdk打包客户端需要依赖的jre和通用资源检查可执行文件,编译安装程序的时候,会编译到最终安装程序中

5、 src: 该目录下就是打包桌面客户端的源码目录了,里面基本就是功能相关的js文件和vue文件了。

6、 其他文件:
	6.1 .env 环境变量配置文件, 里面有Server端地址的配置
	6.2 vue.config.js 打包和编译配置文件
	6.3 package.json 依赖库版本以及编译命令等配置文件,使用npm install之后,会自动在该文件中添加对应的依赖项
	6.4 u8sdk_icon_win.ico windows下生成安装程序,安装之后的图标
	6.5 u8sdk_icon_mac.icns mac下生成安装程序,安装之后的图标
	6.6 其他文件,一般不需要手动修改

开发环境

默认的npm 仓库下载速度慢,我们可以先将npm 仓库切换为国内淘宝镜像;安装npm之后, 可以在命令行中,使用如下命令切换镜像:

bash
npm config set registry https://registry.npmmirror.com/
npm config set ELECTRON_MIRROR https://cdn.npmmirror.com/binaries/electron/

设置好镜像之后, 命令行中切换到打包客户端工程U8SDKPM目录下,执行如下命令安装对应的依赖:

bash
npm install

如果执行过程中,卡在了[electron-chromdriver@...]这里, 请按[Esc]跳过这个依赖的安装,等其他依赖安装完成后, 再执行如下命令:

bash
npm install chromedriver --chromedriver_cdnurl=http://cdn.npmmirror.com/dist/chromedriver

所有依赖安装完成之后, 我们可以输入如下命令, 看下是否有弹出打包客户端登陆界面:

bash
npm run electron:serve

桌面打包客户端需要连接U8Server后端程序才能完成登录, 所以,我们需要先配置一下打包客户端程序的配置:

打开.env文件,将里面如下配置更改一下:

bash
VUE_APP_API: 配置为U8ServerManager的访问地址,请注意: URL地址最后请携带上/, 比如: http://localhost:13338/
VUE_APP_TARGET_PLATFORM: 如果需要编译运行Android打包客户端,请将值设置为android;如果需要编译运行iOS打包客户端,请将值设置为ios

编译运行

通过上面的步骤之后, 我们可以用HBuilder X打开U8SDKPM工程, 然后直接在菜单-》运行-》运行到终端-》npm run electron:serve来基于当前工程,直接运行打包客户端。

这种方式适合我们在开发调试的时候使用, 更改vue代码之后,打包客户端界面会自动完成内容更新,可以快速开发和调试。

如果需要发布生成安装程序, 我们可以使用如下命令进行编译:

bash
npm run electron:build

编译之后, 生成的安装程序在当前工程/dist_electron目录下。

如果是在Windows 64位上编译, 那么生成的安装程序,就是Windows 64位的;如果是在Windows 32位机器上编译,那么生成的安装程序,就是Windows 32位的;如果是在Mac上编译,那么生成的就是Mac下面的安装程序。

具体不同平台上面编译生成安装程序,请看这篇文档

Android平台client目录

上面运行起来的是打包客户端的工作界面,在里面可以进行游戏参数,渠道参数等相关的配置,在打包客户端界面选择渠道,开始打包的时候。 打包客户端会调用python打包脚本进行打包。 该脚本和对应的辅助工具,在U8SDKPM同级目录的client目录下。

1、 client目录结构

* config:  打包客户端本地配置目录,接好的渠道和插件SDK,以及全局配置都放在该目录下
  --keystore: 全局通用的keystore放置目录,没有实际的用途,仅仅作为自己存放keystore证书使用
  --local: 打包工具全局配置目录,里面内容一般不需要改动
  --plugin: 接好的插件SDK都放在该目录下
  --sdk: 接好的渠道SDK都放在该目录下
  --splash: 打包工具自动处理闪屏时需要的配置文件,不需要改动
* scripts: 存放打包工具的python脚本文件(打包过程的核心)
		   发布打包客户端的时候,我们需要根据发布文档,在该目录下,将脚本源码编译生成对应平台下的可执行文件
* tool: 存放打包工具运行需要的辅助工具(多平台),比如apktool,aapt,zipalign等。 
  --win: windows平台下打包工具需要的辅助工具版本
  --mac: mac平台下打包工具需要的辅助工具版本

2、本地模式打包

一般开发环境中,我们会使用本地方式打包,加快包体和SDK的调试。 本地打包时, 我们在打包客户端中-》全局设置里面,将本地模式,和使用脚本源码功能开启,同时将本地打包目录指向上面client目录。 如下图:

本地模式打包

设置本地模式之后, 打包客户端,将使用client目录下的脚本源码打包, 同时SDK配置也是读取client/config/目录下接好的SDK和插件。 所以,打包的时候, 所选的打包渠道和插件,请确保client/config/sdk和plugin目录下有对应的渠道和插件配置目录。

本地打包的时候,我们需要依赖python环境。 如果您是windows下使用,请先安装python环境(python2.7.x或者python 3.x版本)。 安装好python之后,我们还需要安装一下python中的图片处理库。命令行中执行如下命令:

bash
python -m pip install pillow

本地打包方式, 如果当前渠道SDK或者插件SDK中,有对应的gradle远程依赖配置, 那我们会用到gradle的依赖下载和编译。 所以,我们需要将Android SDK目录和JDK路径设置一下。

如果您是mac或者linux环境下, 我们还需要将client下面的辅助工具给一下可执行权限:

bash
chmod +x client/tool/mac/aapt
chmod +x client/tool/mac/aapt2
chmod +x client/tool/mac/zipalign

本地打包成功后, 我们就可以尝试将打包客户端发布成不同平台对应的安装程序,提供给别人使用了,请看这篇文档

iOS平台client目录

上面运行起来的是打包客户端的工作界面(u8sdkpm),是同时兼容Android和iOS打包的。 要实现iOS打包, 只需要将u8sdkpm/package.json中platform设置为ios,然后重新运行即可。 这样显示出来的界面,就可以进行ipa的打包了。

1、 client目录结构

* Core: U8SDK抽象层框架源码库工程,游戏层接入时,需要将该工程编译的U8SDKCore.framework放到游戏工程的依赖中
* Plugins: 所有接入的渠道SDK、插件SDK都存放在这里,每个渠道/插件一个工程
* scripts: 打包工具的python脚本文件(iOS打包的核心)
* U8SDKDemo: U8SDKDemo工程,src是U8SDKDemo的源码目录。

2、环境配置

2.1 准备Xcode

iOS打包基于xcode开发工具,最终是调用xcode的编译命令进行打包。 所以需要机器上安装好最新版本的xcode工具。

2.2 安装python

本地脚本源码打包时, 需要安装python环境, 请安装python 3.9/3.10/3.11版本。 安装后, 指定如下命令安装对应的python三方库:

bash
python -m pip install pillow  (图片处理)
python -m pip install pyOpenSSL (OpenSSL库)

3、本地模式打包

一般开发环境中,我们会使用本地方式打包,加快包体和SDK的调试。 本地打包时, 我们在打包客户端中-》全局设置里面,将本地模式,和使用脚本源码功能开启,同时将本地打包目录指向上面u8sdk-ios-client目录。 如下图:

本地模式打包

设置本地模式之后, 打包客户端,将使用client目录下的脚本源码打包, 同时SDK配置也是读取client/Plugins/目录下接好的SDK。 注意: 后台SDK管理中,添加iOS渠道SDK时,SDK名称需要和Plugins下U8SDK_XXX中的XXX名称一致。

版权所有© 2021-2030 上海丞诺网络科技有限公司