DOCUMENTATION
使用文档
从注册到拿到 APK / IPA 的完整说明,以及后台配置、收费开关、构建集群对接方式。版本 v1.0,对应当前 最骚App。
安装与部署(宝塔)
- 新建站点:宝塔 → 网站 → 添加站点,域名填你的域名,PHP 版本选 7.4 及以上,数据库选「MySQL 数据库」(本程序支持数据库与文件双模式,推荐 MySQL)。
- 创建数据库:宝塔 → 数据库 → 添加数据库,记下数据库名 / 用户名 / 密码;安装向导里选择 MySQL 并填写。若选「文件存储」则可跳过此步。
- 上传解压:进入站点目录 → 上传
packforge-php.zip→ 右键解压。解压后站点根目录应直接能看到install.php、index.php、assets/;若解压出来多了一层文件夹,把文件夹里的内容移动到根目录。 - 首页设置:站点 → 网站首页,确保包含
index.php(如首页是index.html,删掉或把它排到 index.php 之后)。 - 目录权限:
data/、storage/、assets/uploads/需要可写。宝塔默认运行用户 www 即可;若安装页报红,右键目录 → 权限 → 设为 755 并勾选「应用到子目录」。 - 运行安装向导:解压后直接打开
https://你的域名/会自动跳转到安装页;也可手动访问https://你的域名/install.php,按「环境检测 → 站点信息 → 管理员账号」三步完成。装好会自动登录并写入data/install.lock,之后再访问/install.php会显示「站点已安装」。 - 伪静态:无需配置。使用 .php 直链,Apache / Nginx 都能直接跑。
Nginx 安全(可选):宝塔默认是 Nginx,不读 .htaccess。数据文件已改成
data/*.php 保护格式(直接访问输出空白),通常无需额外配置;如需彻底封死目录,可在 站点 → 配置文件 里加:
location ^~ /data/ { deny all; }
location ^~ /storage/ { deny all; }
数据表说明:MySQL 模式共两张表:
pf_settings 存站点设置,pf_rows 存用户 / 订单 / 打包任务(按 namespace 区分);表前缀可在安装时修改(默认 pf_)。备份直接使用宝塔的「数据库备份」即可。重装 / 忘记密码:删除
data/users.php 再访问 /install.php 重新安装(data/install.lock 也可一并删);会清空用户、任务与订单数据。构建工具链(真实 APK)
开箱即用:程序内置 aapt2、zipalign、框架资源、外壳 classes.dex 与签名证书,解压即可直接在服务器上编译出可安装的真实 APK,无需安装任何东西。流程:aapt2 编译资源与清单 → 注入外壳 dex → zipalign 对齐 → 签名(默认内置 PHP JAR v1 签名、targetSdk=29;配置 JRE 后自动升级为 apksigner v2 + 更高 targetSdk)。
- 无需自己写代码:程序已内置预编译外壳
worker/classes.dex与签名证书worker/packforge.keystore,所有任务复用,每个任务只注入自己的配置与图标。 - 无需安装(默认):内置核心随包分发,解压后直接打包就是真 APK;后台「站点设置 → 构建工具链」可一键检测状态。
- 可选升级(v2 签名):装 JRE 后在站点设置填
java_home,签名自动升级为 apksigner v2、targetSdk 可提到 34+;也可在站点目录执行:
脚本自动安装 JRE17、下载 build-tools 与 android.jar,并打印后台要填的三个路径。完整说明见bash worker/install-toolchain.shworker/README.txt。 - 手动安装:JRE(
apt-get install -y openjdk-17-jre-headless)+build-tools_r34-linux.zip(含 aapt2 / zipalign / lib/apksigner.jar)+ platform-34 包里的android.jar。 - 后台报「禁用了所有进程执行函数」:宝塔 → 软件商店 → PHP → 设置 →「禁用函数」中删除
exec(及shell_exec/proc_open若也被禁)并重启 PHP;未放开前系统会自动回退演示产物并说明原因。 - 后台配置:站点设置 → 构建工具链,填入
java_home、build_tools、android_jar→ 点「检测工具链」,显示 构建核心就绪 后立即生效(这三项是可选增强,默认已开箱可用)。
iOS / IPA 说明:苹果要求必须在 macOS + Xcode 环境用开发者证书签名,Linux 服务器无法直接构建 IPA。iOS 产物走两条路:① 后台上传已签名的模板 IPA,打包时注入网址配置;② 云构建:填
builder_api 把任务交给你的 macOS 构建机,回调交付(见「构建集群对接」)。产物与维护:APK 位于
storage/builds/<任务ID>/app-release.apk;构建工作目录 storage/builds/<任务ID>/android/ 可定期清理;签名证书务必长期固定(换证书 = 换应用,无法覆盖安装),需更换时用 keytool 生成后覆盖 storage/keys/packforge.keystore。快速开始
- 注册账号(后台可关闭注册),登录后进入「个人中心」。
- 回到首页,在输入框粘贴你的网址,例如
zuisao.com。 - 选择目标平台:
Android · APK、iOS · IPA或「双端同时出包」。 - 点击「一键打包」,流水线跑完后在任务详情页下载产物。
提示:未配置构建集群时走演示构建,产物为配置清单 + 构建报告;接入集群后即为真实 APK / IPA。
创建打包任务
任务表单包含四个核心字段,全部会写进 packforge.json:
{
"url": "zuisao.com", // 你的站点,自动补 https://
"platform": "android", // android | ios | both
"app_name": "Zuisao", // 可留空,按域名自动推导
"package_id": "com.zuisao.app" // 可留空,按域名自动推导
}
- 任务状态:
排队中 → 构建中 → 已完成 / 失败。 - 任务归属创建者,只有本人和管理员可以查看、下载、删除。
- 任务日志按步骤追加,失败时会记录原因,便于排查。
平台与产物(APK / IPA)
Android · APK
- 产物扩展名
.apk,可直接侧载安装或转 AAB 上架 Google Play。 - 需要后台配置签名证书;未配置时使用调试证书并在日志中标注。
iOS · IPA
- 产物扩展名
.ipa,用于 TestFlight / App Store 提交。 - 需上传描述文件(描述文件与证书由你在后台或对接集群时提供)。
双端同时出包
选择「双端」后任务会生成两条构建记录,分别产出 APK 与 IPA,在同一任务详情页下载。
后台配置说明
管理员在 管理后台 → 站点设置 可控制:
- 品牌:站点名称、口号、Logo、Favicon、备案号、页脚文案、联系邮箱。
- 外观:默认亮色 / 暗色主题(用户仍可自行切换并记忆)。
- 开关:是否开放注册、是否启用计费。
- 套餐:三档套餐的名称、价格、月度构建额度与卖点。
- 构建:builder_api 地址与令牌,留空则走演示构建。
- 公告:顶部通栏公告,支持简单 HTML 与链接。
收费与订单
- 后台打开「启用计费」后,价格页的订阅按钮会生成订单。
- 订单初始为
待支付,用户在「个人中心 — 订单」查看。 - 管理员在
管理后台 → 订单标记已支付,系统自动开通对应套餐一个月。 - 切换到
易支付网关并填入商户号 / 密钥后,用户可自助在线支付(接口已预留)。 按次扣费单价大于 0 时,超额构建将从账户余额扣款,余额由管理员在用户管理中充值。
构建集群对接
在后台填入 builder_api 后,创建任务会以 JSON POST 到你的构建服务:
POST {builder_api}
X-Builder-Token: {builder_token}
Content-Type: application/json
{
"id": 1024,
"url": "zuisao.com",
"platform": "android",
"app": { "name": "Zuisao", "package": "com.zuisao.app", "version": "1.0.0" },
"permissions": ["push", "camera"],
"callback": "https://your-site/ajax/build_callback.php"
}
构建完成后回调 ajax/build_callback.php,携带任务 id、状态与产物地址,系统会更新任务并通知用户。
安全与数据
- 密码使用
password_hash()加盐存储,会话 Cookie 为 HttpOnly + SameSite=Lax。 - 所有写操作带 CSRF 令牌校验,输出统一转义防 XSS。
- 数据存储分两种模式:MySQL 模式下数据存数据库(表
pf_settings/pf_rows,前缀可改);文件模式下存data/*.php(首行带<?php exit; ?>保护),安装时二选一。文件模式写入加文件锁;建议再对/data与/storage配置 deny。 - 产物存放在
/storage/builds/{id}/,下载走 PHP 权限校验,不暴露目录。
常见问题
更换域名 / 迁移站点要注意什么?
整站是绿色目录,复制到新环境即可运行;请确保 /data 与 /storage 可写。迁移后无需改数据库。
如何关闭注册?
管理后台 → 站点设置 → 关闭「开放注册」,保存后注册页会提示已关闭。
忘记密码怎么办?
当前版本由管理员在「用户管理」中重置;如需自助找回,可在后台配置邮件服务后扩展。
可以多台服务器共用数据吗?
JSON 文件存储适合单机部署。多机部署建议把 /data 放到共享存储,或迁移到 MySQL(连接层已隔离在 storage.php,替换成本很低)。