# IosSuperSign
**Repository Path**: he1per/IosSuperSign
## Basic Information
- **Project Name**: IosSuperSign
- **Description**: ios超级签名
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 4
- **Created**: 2023-05-26
- **Last Updated**: 2023-05-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ios超级签使用说明书
[toc]
```
@email su_jiehao@qq.com
```

## webserver(手机客户端udid并打包生成新的ipa提供给用户下载)
webserver跑起来:
```
cd WebServer
npm install
node main.js
```
### webserver目录介绍
config目录:
```
apple.json:缓存有什么账号可以提供ios超级签,已经udid对应子哪个账号下已打包
```
```
haoganeahoc.mobileprovision:用户下载这个文件就是自动打开iphone用户设置相信证书(如果服务器提供这个文件不影响超级签逻辑,只是要用户自己手动打开跳转到用户设置)
```
```
udid.mobileconfig:当用户点击安装ipa时就会下载这个文件,当用户安装这个文件时就会获取到用户的udid进行打包(这个文件根据https/udid-unsign.mobileconfig生成,生成方式即参数讲解请留意下面)
```
https目录:
```
sujiehao.club_ca.crt:域名证书相关文件,还没了解很多,暂时不介绍
sujiehao.club.cer:域名证书相关文件,还没了解很多,暂时不介绍
sujiehao.club.crt:域名证书相关文件,还没了解很多,暂时不介绍
sujiehao.club.key:域名证书相关文件,还没了解很多,暂时不介绍
简单来说就是使用这些人家可以使webserver服务器支持https,而且我们的udid.mobileconfig文件签名也要使用这些文件
```
```
udid-unsign.mobileconfig:这个文件是为了让iphone用户安装然后获取到用户的udid
打开文件看到这个:
PayloadDisplayName
查询设备UDID
这个string没啥用,随便填,当你下载安装udid.mobileconfig时显示给用户看的标题
URL
https://sujiehao.club:9600/udid/
这个是当用户下载安装udid.mobileconfig时访问的服务器回掉,即用户点击安装这个文件就会把用户的udid通过这个地址发送给服务器
注意:udid.mobile一定要签名,不然会安装失败,签名姿势看下面介绍
```
```
sign-udid-config.sh:终于到我了,我就是签名udid.mobileconfig文件的脚本文件,
打开这个文件我们看到只有一行
openssl smime -sign -in udid-unsign.mobileconfig -out ../config/udid.mobileconfig -signer sujiehao.club.crt -inkey sujiehao.club.key -certfile sujiehao.club_ca.crt -outform der -nodetach
这行就是把udid-unsign.mobileconfig文件签名并且生成到config/udid.mobileconfig提供给用户下载
```
output目录
```
nodejs log输出目录,并没啥用,暂时忽略
```
packoutput目录
```
打包webserver输出目录,即例如webpack把webserver打包部署到服务器时生成文件到这里,如果你不怕代码很容易给人看就可以不使用webpack打包,即这里对你没啥用
```
packscript目录
```
打包编译脚本目录
```
```
packscript/compile_webserver_ts.sh
packscript/compile_ts.sh:本项目使用的是node ts开发,所以当你修改增加xxx.ts时运行compile_webserver_ts.sh,这里会调用compile_ts.sh编译生成ts对应的js到对应目录,生成规则自己修改tsconfig.json(也可以不改,按我的,即在对应目录生成js,如aaa/bbb/a.ts就会在aaa/bbb/a.js生成文件)
```
```
pack.sh:打包webserver的脚本,运行该脚本会使用webpack把项目所有js打包为一个bundle.js生成输出到packoutput目录,修改的话自己改webpack.config.js,当然可以按我这个来
```
public目录:
```
静态文件服务器共享文件夹,即这个目录下的文件客户端都是可以世界访问的例如:https://sujiehao.club:9600/readme.md
```
script目录
```
webserver服务器相关代码自己走查修改把,这里不多介绍,这个目录除了main.js其他都是使用ts开发,所以不用理里面的xxx.js文件,这是运行时文件
```
### ipa-resign目录
这是重点目录,即登录苹果官网,增加设备udid,生成新的profile文件,下载profile文件,使用新的profile重新签名ipa都是在这个目录完成
```
这个目录的玩法请参考ipa-resign/readme-mac.md,暂时只完成了mac下的ipa一键获取udid重新打包ipa给用户下载,linux下由于其他步骤都实现了,就是重签后的ipa用户安装不了,暂时学习失败,没心情研究
```
## client(客户端测试网页)
使用方式:部署一个静态文件服务器,指向文件client/index.html
或者使用安装vscode,然后安装vscode插件live server,vscode打开client/index.html文件,鼠标右键open with live server
如果觉得对你有帮助的,支持下技术人员技术研究工作

