{"id":13842311,"url":"https://github.com/togettoyou/ipashare","last_synced_at":"2025-05-15T11:07:31.829Z","repository":{"id":43666536,"uuid":"341834156","full_name":"togettoyou/ipashare","owner":"togettoyou","description":"🚤 苹果 IPA 应用签名内测分发系统，一键上传 .ipa 文件，快速生成下载链接和二维码","archived":false,"fork":false,"pushed_at":"2025-01-30T16:41:40.000Z","size":49066,"stargazers_count":556,"open_issues_count":0,"forks_count":190,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-14T19:58:24.492Z","etag":null,"topics":["ad-hoc","ios","ipa","zsign"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/togettoyou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-24T08:42:51.000Z","updated_at":"2025-04-11T16:39:53.000Z","dependencies_parsed_at":"2023-01-19T23:47:33.868Z","dependency_job_id":"b13ff9a6-7bd5-4294-a6ed-2efa6a218c3e","html_url":"https://github.com/togettoyou/ipashare","commit_stats":null,"previous_names":["togettoyou/supersign"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/togettoyou%2Fipashare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/togettoyou%2Fipashare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/togettoyou%2Fipashare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/togettoyou%2Fipashare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/togettoyou","download_url":"https://codeload.github.com/togettoyou/ipashare/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254328384,"owners_count":22052632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ad-hoc","ios","ipa","zsign"],"created_at":"2024-08-04T17:01:31.829Z","updated_at":"2025-05-15T11:07:31.784Z","avatar_url":"https://github.com/togettoyou.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"## 微信公众号：gopher云原生\n\n\u003cimg src=\"https://github.com/user-attachments/assets/ea93572c-6c05-4751-bde7-35a58fe083f1\" width=\"520\" alt=\"gopher云原生公众号二维码\"\u003e\n\n👆 扫码或搜索关注公众号：**gopher云原生**\n\n## 起源\n\n每个客户端开发者都会想独立开发一款自己的 APP 。 但在开发过程中， iOS 不像 Android 那样可以自由的分享应用给其他人安装体验\n（Android 只要把 `.apk` 发过去就行了）\n\n对于 iOS 开发者来说， Apple 的个人开发者账号几乎是必备的， 而 Apple 公司允许我们添加 100 台设备绑定到账号上，这 100\n台设备可以自由安装由该账号签名且使用 Ad Hoc 方式打包出的 `.ipa`\n\n本项目就是利用这个官方的规则，来简化 iOS APP 的分享流程。当你开发一款 APP\n的过程中，想要给身边的小伙伴体验一下，只需要部署本项目，然后上传你的个人开发者账号和 `.ipa` 就可以生成一个二维码，扫一扫即可全程自动绑定设备并签名安装\nAPP\n\n## 原理\n\n设备绑定账号调用 [App Store Connect API](https://developer.apple.com/documentation/appstoreconnectapi) 实现\n\n`.ipa` 签名调用 [zsign](https://github.com/zhlynn/zsign) 实现\n\n## 注意事项\n\n本项目完全开源免费，纯技术分享，不提供任何平台支持，仅作为给个人开发者分享自己的测试 APP\n使用，严禁使用本项目进行任何商业盈利、损害官方利益、分享任何违法违规的 APP 等行为\n\n## 个人开发者账号\n\n本项目添加开发者账号后会占用账号的一个 iOS Development certificate 名额（每个账号最多只能创建两个），所以你可能得预留一个\n\n其中添加开发者账号所需的 iss（Issuer ID）、kid（密钥 ID）、P8 文件（API\n密钥）需要在 https://appstoreconnect.apple.com/access/api 创建后获取\n\n## Docker 部署\n\n创建 `docker-compose.yml` ，内容如下：\n\n```yaml\nversion: '3'\nservices:\n  server:\n    image: togettoyou/ipashare:latest\n    ports:\n      - \"8888:8888\"\n    volumes:\n      - $PWD/data:/root/togettoyou/data\n      - /etc/timezone:/etc/timezone\n      - /etc/localtime:/etc/localtime\n    environment:\n      - SERVER_URL=https://example.com # 必须修改，域名\n      - SERVER_HTTPPORT=8888 # 指定后端服务端口\n      - SERVER_MAXJOB=10 # 签名任务并发量\n      - SERVER_RUNMODE=release\n      - LOG_LEVEL=info\n```\n\n执行：\n\n```shell\n# 前台运行服务\ndocker-compose up\n# 后台运行服务\ndocker-compose up -d\n# 查看服务日志\ndocker-compose logs -f --tail 100\n# 停止服务\ndocker-compose stop\n# 启动服务\ndocker-compose start\n# 重启服务\ndocker-compose restart\n# 删除服务\ndocker-compose down -v\n```\n\n启动成功后可通过 `域名/admin` 例如 `https://example.com/admin` 访问后台管理\n\n项目启动后所有数据保存在 `data` 目录，请妥善保管\n\n- `apple_developer` : 苹果开发者账号相关证书\n- `temporary_file_path` : 临时文件存放路径（打包后的 IPA，1小时后会自动删除）\n- `upload_file_path` : 文件上传路径（上传的 IPA）\n- `sqlite.db` : 默认的sqlite数据库文件\n\n数据库支持更换为 MySQL ，在 `docker-compose.yml` 加入以下环境变量即可：\n\n```yaml\n- MYSQL_ENABLE=true\n- MYSQL_DSN=root:123456@tcp(127.0.0.1:3306)/db_default?charset=utf8mb4\u0026parseTime=True\u0026loc=Local\n```\n\n更多环境变量可参考：[server/conf/default.yaml](server/conf/default.yaml) ，变量层级使用 `_` 连接，如 `MYSQL_MAXIDLE` 代表\nmysql\n配置中的空闲连接池中连接的最大数量\n\n## JetBrains 开源证书支持\n\n本项目使用 GoLand 开发，感谢 JetBrains 提供的免费授权\n\n\u003ca href=\"https://www.jetbrains.com/?from=togettoyou\" target=\"_blank\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/55381228/127271051-14879011-41dd-4d1b-88a2-1591925b51de.png\" width=\"250\" align=\"middle\"/\u003e\u003c/a\u003e\n\n## 部分效果预览\n\n|  ![login](https://user-images.githubusercontent.com/55381228/195557740-3b65e5c9-b86e-42ba-929e-273b0e110d23.png)  |  ![developer](https://user-images.githubusercontent.com/55381228/195557833-ec3d4db8-76ee-4d60-9915-ee35f06f2efe.png)   |\n|:-----------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------:|\n|                                                      后台管理登录                                                       |                                                        开发者账号管理                                                         |\n| ![ipalist](https://user-images.githubusercontent.com/55381228/195557932-54b8ca9b-081d-4ddf-bbd7-5b6004664720.png) |   ![keylist](https://user-images.githubusercontent.com/55381228/195558156-7b7dea93-d9d6-4aac-b0a9-3bf9751828d2.png)    |\n|                                                       应用管理                                                        |                                                          密钥管理                                                          |\n|   ![oss](https://user-images.githubusercontent.com/55381228/232664237-13e74612-23cd-4dea-aac9-8b9b92c2cf2e.png)   | ![mobileconfig](https://user-images.githubusercontent.com/55381228/232421233-b41de68d-5d78-4412-a1f7-cf69db356cdf.png) |\n|                                                    阿里云 OSS 设置                                                     |                                                         描述文件签名                                                         |\n|   ![pw](https://user-images.githubusercontent.com/55381228/232421631-16c7b41d-1749-4c0f-b096-b894bf750416.png)    |    ![image](https://user-images.githubusercontent.com/55381228/232664767-3d50b491-e25d-46d6-8d19-6c5d302d7bab.png)     |\n|                                                      更改用户名密码                                                      |                                                         安装 APP                                                         |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftogettoyou%2Fipashare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftogettoyou%2Fipashare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftogettoyou%2Fipashare/lists"}