# 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 ``` ![](./assets/icon.jpg) ## 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 如果觉得对你有帮助的,支持下技术人员技术研究工作 ![](./assets/pay1.jpg) ![](./assets/pay2.jpg)