Skip to content

my9app/ipasupersign

Repository files navigation

🔥 365天不掉签超级签名系统

告别掉签烦恼,真正的一年稳定签名方案

iOS IPA 自动签名分发系统,基于 Apple 开发者账号 + UDID 绑定机制,实现 365天稳定签名、设备独享、无需共享证书


📖 目录


为什么365天不掉签?(核心原理)

🧠 技术原理详解

本系统采用 Apple 个人开发者账号 + Ad Hoc 分发机制,这是 Apple 官方为开发者提供的合法分发方式。

什么是 Ad Hoc 分发?

Ad Hoc 是 Apple 为开发者提供的"定向分发"机制,允许开发者将 App 安装到指定的设备上进行测试。工作流程如下:

1. 获取设备 UDID(每台 iPhone/iPad 的唯一识别码)
        ↓
2. 将 UDID 注册到 Apple 开发者账号
        ↓
3. 为该设备生成专属描述文件(Provisioning Profile)
        ↓
4. 使用该描述文件对 IPA 进行签名
        ↓
5. 设备安装签名后的 IPA,有效期 365 天

为什么不会掉签?

对比项 企业签名(Enterprise) 本系统(Ad Hoc)
签名主体 企业证书($299/年) 个人开发者证书($99/年 ≈ ¥688)
分发方式 所有人共用同一签名 每设备独立签名
风险等级 极高(一人违规,全部掉签) 极低(设备独立,互不影响)
掉签原因 证书被滥用 → Apple 封禁 仅当开发者账号本身被封
有效期 理论1年,实际几天到几周 真正的365天

核心区别:企业签名是"一对多"(一个证书签所有人),本系统是"一对一"(每台设备独立签名)。Apple 封禁企业证书是因为检测到大规模异常分发;而本系统每个设备都是合法的"开发者测试设备",不触发 Apple 的封禁机制。

UDID 自动识别机制

本系统通过 iOS 描述文件(mobileconfig) 自动获取设备 UDID:

1. 用户点击"获取设备权限"
        ↓
2. Safari 下载并安装临时描述文件
        ↓
3. 描述文件将设备 UDID 回传到服务器
        ↓
4. 服务器自动将 UDID 注册到 Apple 开发者账号
        ↓
5. 自动生成专属描述文件并签名 IPA
        ↓
6. 用户返回页面即可安装

整个过程全自动,用户无需手动查找 UDID,体验与普通应用商店下载一致。


与市面签名服务对比

😤 市面签名服务的痛点

当前市场上的 iOS 签名服务(尤其是企业签名分发平台)存在以下严重问题:

1. 强制最低消费

  • 每天最低扣费 10 个签名配额
  • 没有客户下载也要扣钱
  • 签名用完必须充值,否则链接失效

2. 共享签名风险

  • 所有客户使用同一个企业证书
  • 一个用户违规 → 证书被封 → 所有人掉签
  • 用户需要重新下载安装,体验极差

3. 频繁掉签

  • 企业签名平均存活时间:几天到几周
  • 掉签后重新签名需要额外付费
  • 用户投诉、流失、运营成本高

4. 隐性收费

  • 签名费 + 下载费 + 续签费 + 补签费
  • 价格不透明,随时涨价

✅ 本系统的解决方案

痛点 市面签名服务 本系统
费用 按量收费 + 最低消费 开发者账号 ¥688/年,无其他费用
签名方式 共享企业签名 每设备独立签名
掉签风险 极高 接近于零
有效期 不确定(几天~几周) 365天
用户体验 频繁重装 安装一次,用满一年
成本可控 不可预测 完全透明

系统核心优势

💰 成本优势

  • 一个开发者账号仅需 ¥688/年(约 $99 美元)
  • 全球任何国家的个人开发者账号均可使用
  • 无需购买昂贵的企业账号($299/年)
  • 无平台抽成,一次投入,终身自主

🔒 安全优势

  • 设备独享签名:一台设备一个签名,互不影响
  • UDID 绑定:签名与设备硬件绑定,无法转移
  • 不触发封禁:合法的开发者测试流程

📊 配额优势

  • 1 台设备 = 1 个签名配额(与安装 App 数量无关)
  • 同一设备可签名 N 个 IPA 应用,只占用 1 个配额
  • 设备重装/升级系统,UDID 不变,配额不增加

设备配额说明

一个 Apple 个人开发者账号的设备配额如下:

设备类型 配额数量
iPhone 100 台
iPad 100 台
Apple Watch 100 台
Apple TV 100 台
Mac(Apple Silicon) 100 台

说明

  1. 配额独立计算:iPhone 100 台和 iPad 100 台是分开的,互不占用
  2. 一机多应用:1 台 iPhone 安装 10 个 IPA,只占用 1 个 iPhone 配额
  3. 配额可释放:删除设备后配额释放,可注册新设备
  4. 年度重置:每个会员年度,配额可重新分配

成本计算示例

假设您需要为 100 台 iPhone 提供签名服务:

方案 成本 稳定性
市面企业签名 ¥3000+/月(不含掉签损失) 随时可能掉签
本系统 ¥688/年(开发者账号费用) 365天稳定

年节省成本:¥3000 × 12 - ¥688 = ¥35,312


功能特点

  • UDID 自动获取:用户无需手动查找,一键授权
  • 自动设备注册:调用 Apple API 自动注册设备
  • 自动签名:zsign 高效签名,秒级完成
  • 自动分发:itms-services 协议,标准安装流程
  • 多证书管理:支持多个开发者账号轮换
  • 设备管理:完整的设备列表、搜索、统计
  • 下载统计:实时监控下载数据
  • 游戏风格 UI:精美的下载页面模板
  • 多应用支持:一个系统管理多个 App

环境要求

项目 最低要求 推荐配置
CPU 1 核 2 核+
内存 1 GB 2 GB+
硬盘 20 GB 50 GB+(IPA 文件较大)
系统 CentOS 7+ / Ubuntu 18+ Ubuntu 22.04 LTS
面板 宝塔面板 最新版
Web Nginx 1.22+ -
PHP 8.1+(扩展:curl, openssl, zip, sqlite3, fileinfo) -
数据库 MySQL 5.7+ -

必须开放端口:80, 443


部署指南

第一步:服务器准备

  1. 购买云服务器(推荐阿里云/腾讯云/华为云)
  2. 安装宝塔面板
  3. 在宝塔中安装:Nginx + PHP 8.1 + MySQL

第二步:宝塔面板配置

2.1 关闭防跨站攻击(重要!)

⚠️ 问题:开启防跨站后,PHP 无法访问上级目录,导致签名失败。

解决方法

  1. 宝塔面板 → 网站 → 找到你的站点
  2. 点击站点名称进入设置
  3. 找到 防跨站攻击(open_basedir)
  4. 关闭此选项

2.2 关闭宝塔安全插件限制

⚠️ 问题:宝塔安全插件会阻止 www 用户执行 zsign。

解决方法

  1. 宝塔面板 → 软件商店 → 已安装
  2. 找到 系统加固宝塔安全 插件
  3. 禁用所有限制规则 或 卸载插件

第三步:PHP 配置

3.1 删除禁用函数(必须!)

⚠️ 问题:PHP 默认禁用了 exec 等函数,导致无法调用 zsign 签名。

解决方法

  1. 宝塔面板 → 软件商店 → PHP 设置
  2. 点击 禁用函数
  3. 删除以下函数:
    • exec
    • shell_exec
    • system
    • passthru
    • proc_open
    • popen

3.2 安装 PHP 扩展

确保以下扩展已安装:

  • curl
  • openssl
  • zip
  • sqlite3(或 pdo_sqlite)
  • fileinfo

检查命令

php -m | grep curl
php -m | grep openssl
php -m | grep zip
php -m | grep sqlite
php -m | grep fileinfo

3.3 配置伪静态

宝塔 → 网站 → 设置 → 伪静态,添加:

location /mobileconfig/ {
    default_type application/x-apple-aspen-config;
}

location ~ ^/([a-zA-Z0-9\-]+)$ {
    if (-f $request_filename) {
        break;
    }
    if (-d $request_filename) {
        break;
    }
    rewrite ^/([a-zA-Z0-9\-]+)$ /app.php?slug=$1 last;
}

第四步:创建数据库

  1. 宝塔面板 → 数据库 → 添加数据库
  2. 数据库名:supersign
  3. 导入 supersign.sql 文件

第五步:上传代码

将所有文件上传到网站目录,如 /www/wwwroot/你的域名/

第六步:修改配置

编辑 config.php 文件第 20-22 行:

// 数据库配置
define('DB_HOST', 'localhost');
define('DB_NAME', 'supersign');          // 数据库名
define('DB_USER', 'supersign');          // 数据库用户名
define('DB_PASS', '你的数据库密码');      // 修改为你的密码

第七步:安装签名工具 zsign

# 进入系统目录
cd

# 克隆仓库
git clone https://github.com/zhlynn/zsign.git
cd zsign/build/linux

# 编译
make clean && make

# 复制到网站目录(请替换为你的实际路径)
sudo cp /root/zsign/bin/zsign /www/wwwroot/你的网站目录/zsign

# 设置权限
sudo chmod +x /www/wwwroot/你的网站目录/zsign
sudo chown www:www /www/wwwroot/你的网站目录/zsign

# 验证是否可用
/www/wwwroot/你的网站目录/zsign --help

第八步:配置 SSL 证书

⚠️ 必须配置 HTTPS! iOS 安装应用必须使用 HTTPS。

  1. 宝塔面板 → 网站 → 站点设置 → SSL
  2. 选择 Let's Encrypt 免费证书
  3. 勾选域名,点击申请
  4. 开启 强制 HTTPS

第九步:设置目录权限

cd /www/wwwroot/你的域名

# 建议将整个目录权限设为 777
chmod -R 777 ./

# 或至少确保以下目录可写
chmod -R 777 ./ipa
chmod -R 777 ./signed
chmod -R 777 ./plist
chmod -R 777 ./mobileconfig
chmod -R 777 ./cert
chmod -R 777 ./uploads
chmod -R 777 ./logs

快速检查清单

# 1. 检查 PHP 函数是否启用
php -r "echo function_exists('exec') ? 'exec OK' : 'exec DISABLED';"

# 2. 检查 zsign 是否可用
/www/wwwroot/你的域名/zsign --help

# 3. 检查目录权限
ls -la /www/wwwroot/你的域名/

# 4. 检查 HTTPS
curl -I https://你的域名

# 5. 测试 www 用户执行 zsign
sudo -u www /www/wwwroot/你的域名/zsign --help

使用方法

后台管理

  1. 访问:https://你的域名/admin/
  2. 默认账号:admin / admin123
  3. 首次登录请立即修改密码!

配置流程

  1. 配置 Apple API:后台 → 设置 → 填入 Apple 开发者账号的 API 密钥
  2. 上传证书:后台 → 证书管理 → 上传 P12 + mobileprovision
  3. 上传应用:后台 → 应用管理 → 上传 IPA 文件
  4. 分享链接:把 https://你的域名 发给用户

用户安装流程

  1. 使用 Safari 浏览器 打开下载页面
  2. 点击"获取设备权限" → 安装描述文件
  3. 安装完成后自动返回页面
  4. 点击"安装应用"
  5. 前往:设置 → 通用 → VPN 与设备管理 → 信任证书

常见问题

Q: 点击安装描述文件没反应?

原因:没有使用 Safari 浏览器,或 HTTPS 证书有问题
解决:必须使用 iPhone 自带的 Safari 浏览器,确保 HTTPS 证书有效

Q: 安装后 App 闪退?

原因:没有信任开发者证书
解决:设置 → 通用 → VPN 与设备管理 → 信任证书

Q: 签名失败,权限不足?

# 检查并修复权限
chown www:www /www/wwwroot/你的域名/zsign
chmod 755 /www/wwwroot/你的域名/zsign
chmod -R 777 /www/wwwroot/你的域名/signed
chmod -R 777 /www/wwwroot/你的域名/plist

Q: zsign 安装失败?

# 手动安装依赖
apt install -y libssl-dev libzip-dev

# 重新编译
cd /root
git clone https://github.com/zhlynn/zsign.git
cd zsign
g++ *.cpp common/*.cpp -lcrypto -lssl -lzip -O3 -o zsign
cp zsign /usr/local/bin/

Q: 大文件下载失败?

解决:启用 R2 云存储分发,或修改 php.ini 增加内存限制


目录结构

/www/wwwroot/你的域名/
├── index.php              # 玩家下载页
├── udid.php               # UDID 获取回调
├── download.php           # IPA 下载
├── config.php             # 配置文件
├── zsign                  # 签名工具
├── admin/                 # 后台管理
│   ├── index.php         # 控制台
│   ├── apps.php          # 应用管理
│   ├── certificates.php  # 证书管理
│   ├── devices.php       # 设备管理
│   └── guide.php         # 部署指南
├── api/                   # API 接口
├── includes/              # 核心类库
│   ├── AppleAPI.php      # Apple API 调用
│   └── ...
├── cert/                  # 证书目录(保密)
├── ipa/                   # 原始 IPA
├── signed/                # 签名后 IPA
├── plist/                 # 安装 plist
├── mobileconfig/          # UDID 描述文件
├── uploads/               # 上传文件
└── logs/                  # 日志文件

安全建议

  1. ✅ 首次登录立即修改管理员密码
  2. ✅ cert 目录设置 700 权限(仅所有者可访问)
  3. ✅ 定期备份数据库
  4. ✅ 监控证书过期时间
  5. ✅ 不要将开发者账号信息泄露给他人

技术支持

如有问题,请联系开发者:

📱 Telegram@N26GG


总结

特性 本系统
签名有效期 365 天
成本 ¥688/年(开发者账号)
设备配额 100 台 iPhone + 100 台 iPad + ...
掉签风险 接近零
安装体验 一键安装,无需越狱
部署难度 宝塔面板,简单部署

告别共享签名的噩梦,拥抱真正的稳定签名方案!

© 2025 365天不掉签超级签名系统

About

365天不掉签超级iOS签名系统 - iOS IPA自动签名分发平台,UDID自动获取,设备独享签名,苹果签名系统源码下载。Apple SuperSign System

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages