https://github.com/togettoyou/ipashare
🚤 苹果 IPA 应用签名内测分发系统,一键上传 .ipa 文件,快速生成下载链接和二维码
https://github.com/togettoyou/ipashare
ad-hoc ios ipa zsign
Last synced: 21 days ago
JSON representation
🚤 苹果 IPA 应用签名内测分发系统,一键上传 .ipa 文件,快速生成下载链接和二维码
- Host: GitHub
- URL: https://github.com/togettoyou/ipashare
- Owner: togettoyou
- License: mit
- Created: 2021-02-24T08:42:51.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-01-30T16:41:40.000Z (3 months ago)
- Last Synced: 2025-04-14T18:14:20.044Z (21 days ago)
- Topics: ad-hoc, ios, ipa, zsign
- Language: Go
- Homepage:
- Size: 46.8 MB
- Stars: 556
- Watchers: 8
- Forks: 190
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hacking-lists - togettoyou/ipashare - 🚤 苹果 IPA 应用签名内测分发系统,一键上传 .ipa 文件,快速生成下载链接和二维码 (Go)
README
## 微信公众号:gopher云原生
👆 扫码或搜索关注公众号:**gopher云原生**
## 起源
每个客户端开发者都会想独立开发一款自己的 APP 。 但在开发过程中, iOS 不像 Android 那样可以自由的分享应用给其他人安装体验
(Android 只要把 `.apk` 发过去就行了)对于 iOS 开发者来说, Apple 的个人开发者账号几乎是必备的, 而 Apple 公司允许我们添加 100 台设备绑定到账号上,这 100
台设备可以自由安装由该账号签名且使用 Ad Hoc 方式打包出的 `.ipa`本项目就是利用这个官方的规则,来简化 iOS APP 的分享流程。当你开发一款 APP
的过程中,想要给身边的小伙伴体验一下,只需要部署本项目,然后上传你的个人开发者账号和 `.ipa` 就可以生成一个二维码,扫一扫即可全程自动绑定设备并签名安装
APP## 原理
设备绑定账号调用 [App Store Connect API](https://developer.apple.com/documentation/appstoreconnectapi) 实现
`.ipa` 签名调用 [zsign](https://github.com/zhlynn/zsign) 实现
## 注意事项
本项目完全开源免费,纯技术分享,不提供任何平台支持,仅作为给个人开发者分享自己的测试 APP
使用,严禁使用本项目进行任何商业盈利、损害官方利益、分享任何违法违规的 APP 等行为## 个人开发者账号
本项目添加开发者账号后会占用账号的一个 iOS Development certificate 名额(每个账号最多只能创建两个),所以你可能得预留一个
其中添加开发者账号所需的 iss(Issuer ID)、kid(密钥 ID)、P8 文件(API
密钥)需要在 https://appstoreconnect.apple.com/access/api 创建后获取## Docker 部署
创建 `docker-compose.yml` ,内容如下:
```yaml
version: '3'
services:
server:
image: togettoyou/ipashare:latest
ports:
- "8888:8888"
volumes:
- $PWD/data:/root/togettoyou/data
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
environment:
- SERVER_URL=https://example.com # 必须修改,域名
- SERVER_HTTPPORT=8888 # 指定后端服务端口
- SERVER_MAXJOB=10 # 签名任务并发量
- SERVER_RUNMODE=release
- LOG_LEVEL=info
```执行:
```shell
# 前台运行服务
docker-compose up
# 后台运行服务
docker-compose up -d
# 查看服务日志
docker-compose logs -f --tail 100
# 停止服务
docker-compose stop
# 启动服务
docker-compose start
# 重启服务
docker-compose restart
# 删除服务
docker-compose down -v
```启动成功后可通过 `域名/admin` 例如 `https://example.com/admin` 访问后台管理
项目启动后所有数据保存在 `data` 目录,请妥善保管
- `apple_developer` : 苹果开发者账号相关证书
- `temporary_file_path` : 临时文件存放路径(打包后的 IPA,1小时后会自动删除)
- `upload_file_path` : 文件上传路径(上传的 IPA)
- `sqlite.db` : 默认的sqlite数据库文件数据库支持更换为 MySQL ,在 `docker-compose.yml` 加入以下环境变量即可:
```yaml
- MYSQL_ENABLE=true
- MYSQL_DSN=root:123456@tcp(127.0.0.1:3306)/db_default?charset=utf8mb4&parseTime=True&loc=Local
```更多环境变量可参考:[server/conf/default.yaml](server/conf/default.yaml) ,变量层级使用 `_` 连接,如 `MYSQL_MAXIDLE` 代表
mysql
配置中的空闲连接池中连接的最大数量## JetBrains 开源证书支持
本项目使用 GoLand 开发,感谢 JetBrains 提供的免费授权
## 部分效果预览
|  |  |
|:-----------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------:|
| 后台管理登录 | 开发者账号管理 |
|  |  |
| 应用管理 | 密钥管理 |
|  |  |
| 阿里云 OSS 设置 | 描述文件签名 |
|  |  |
| 更改用户名密码 | 安装 APP |