如何搭建自己的 iOS 企业签名服务器?

iOS 企业签名是一种绕过 App Store 审核,直接向用户分发应用的方式。许多企业和开发者希望搭建自己的 iOS 企业签名服务器,以提高签名稳定性、减少掉签风险、降低对第三方平台的依赖

本文将详细介绍iOS 企业签名服务器的搭建流程,包括服务器环境准备、证书申请、签名工具搭建、分发平台搭建等,帮助开发者建立稳定的签名系统。


一、搭建企业签名服务器的基本原理

苹果企业签名(Enterprise Signature)基于企业开发者证书(Apple Developer Enterprise Program,ADEP),允许企业内部签名和分发应用,但不允许公开传播

搭建企业签名服务器的核心流程如下:

  1. 申请 Apple 企业开发者账号 并获取企业证书(p12 文件)。
  2. 在服务器端存储证书,并提供签名 API。
  3. 解析 IPA 文件,使用企业证书进行签名
  4. 生成分发链接(如 iOS MDM 或 Plist 配置)。
  5. 通过 Web 界面或 API 向用户提供 App 下载

二、环境准备

1. 服务器选择

建议使用高性能服务器,因为签名操作涉及加密计算,对 CPU 性能有一定要求。推荐配置如下:

组件推荐配置
服务器Ubuntu 20.04 / CentOS 7 / macOS 服务器
CPU4 核以上
内存8GB 以上
存储100GB 以上(用于存储 IPA 文件和签名数据)
网络独立公网 IP,支持 HTTPS

三、申请 Apple 企业开发者账号

1. 申请 Apple Developer Enterprise Program(ADEP)

要使用企业签名,必须先注册 Apple 企业开发者账号($299/年)。申请流程如下:

  1. 准备公司信息(企业 DUNS 码、公司官网、公司邮箱等)。
  2. 访问 Apple Developer 官网https://developer.apple.com/programs/enterprise/)。
  3. 提交企业开发者账号申请,并完成 Apple 的电话审核。
  4. 审核通过后,获取企业证书(p12、mobileprovision)。

四、企业签名服务器的搭建步骤

1. 服务器环境配置

在服务器上安装以下必要工具:

# 更新系统
sudo apt update && sudo apt upgrade -y  

# 安装 Node.js(用于签名 API)
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs

# 安装 OpenSSL(用于证书处理)
sudo apt install -y openssl

# 安装 nginx(用于分发 IPA)
sudo apt install -y nginx

2. 安装签名工具

方法 1:使用 ios-deploy 进行签名

npm install -g ios-deploy

方法 2:使用 signing-tools

git clone https://github.com/SignTools/SignTools.git
cd SignTools
npm install

五、配置企业签名服务 API

1. 解析 IPA 并进行签名

创建 sign.js 文件,实现签名 API:

const express = require('express');
const multer = require('multer');
const { exec } = require('child_process');
const fs = require('fs');

const app = express();
const upload = multer({ dest: 'uploads/' });

app.post('/sign', upload.single('ipa'), (req, res) => {
    const ipaPath = req.file.path;
    const certPath = 'certs/enterprise.p12';
    const provisionPath = 'certs/enterprise.mobileprovision';
    const outputPath = `signed/${req.file.originalname}`;

    const command = `ios-deploy -i ${ipaPath} -o ${outputPath} -c ${certPath} -p ${provisionPath}`;

    exec(command, (error, stdout, stderr) => {
        if (error) {
            return res.status(500).send(`签名失败: ${stderr}`);
        }
        res.send(`签名成功,下载链接: /download/${req.file.originalname}`);
    });
});

app.listen(3000, () => console.log('签名服务器运行在 3000 端口'));

运行签名服务器:

node sign.js

六、搭建 IPA 分发系统

1. 配置 Nginx 提供下载

编辑 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/default

添加以下内容:

server {
    listen 80;
    server_name yourdomain.com;

    location /download/ {
        root /var/www/html;
        autoindex on;
    }
}

重启 Nginx:

sudo systemctl restart nginx

2. 生成 Plist 配置(用于 iOS 直接安装)

创建 download.plist 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>https://yourdomain.com/download/signed.ipa</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>com.example.app</string>
                <key>bundle-version</key>
                <string>1.0</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>My App</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

用户可通过 Safari 访问以下链接安装应用:

itms-services://?action=download-manifest&url=https://yourdomain.com/download.plist

七、总结

搭建 iOS 企业签名服务器的流程:

  1. 申请企业开发者账号,获取 p12 证书和 mobileprovision 文件。
  2. 搭建服务器(推荐 Ubuntu 服务器),安装 Node.js、Nginx、OpenSSL。
  3. 安装签名工具(如 ios-deploy、SignTools)。
  4. 搭建 API 进行 IPA 签名,并存储已签名文件。
  5. 搭建 Nginx 分发 IPA,生成 Plist 供用户下载。

🚀 最终,用户只需访问分发链接,即可通过企业签名安装 iOS 应用!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注