ipashare
ipashare copied to clipboard
🚤 share and install your Apple ipa
å¾®ä¿¡å ¬ä¼å·ï¼SuperGopher
goãäºåçææ¯ ...... æ¥è ä¸æï¼æ¬¢è¿å ³æ³¨
èµ·æº
æ¯ä¸ªå®¢æ·ç«¯å¼åè é½ä¼æ³ç¬ç«å¼åä¸æ¬¾èªå·±ç APP ã ä½ iOS ä¸å Android é£æ ·å¯ä»¥èªç±çå享åºç¨ç»å ¶ä»äººå®è£ ï¼Android åªè¦æ apk ç©åºå»å°±è¡äºï¼
å¯¹äº iOS å¼åè
æ¥è¯´ï¼è¹æå¼åè
è´¦å·å ä¹äººæå¿
å¤ï¼è¿éåªè®¨è®ºä¸ªäººè´¦å·ï¼ï¼ èè¹æå
¬å¸å
许æ们添å 100 å°è®¾å¤ï¼udidï¼ç»å®å°è´¦å·ä¸ï¼è¿ 100 å°è®¾å¤å¯ä»¥èªç±å®è£
ç±è´¦å·ç¾åä¸ä½¿ç¨ Ad Hoc æ¹å¼æå
åºç .ipa
æ¬é¡¹ç®å°±æ¯å©ç¨è¿ä¸ªè§åï¼æ¥ç®å iOS APP çå享æµç¨ãå½ä½ å¼åä¸æ¬¾ APP çè¿ç¨ä¸ï¼æ³è¦ç»èº«è¾¹çå°ä¼ä¼´ä½éªä¸ä¸ï¼åªéè¦ä½¿ç¨æ¬é¡¹ç®ä¸ä¼ ä½ ç IPA 并çæä¸ä¸ªäºç»´ç é¾æ¥ï¼æ«ä¸æ«ï¼å³å¯å ¨ç¨èªå¨ç»å®è®¾å¤å¹¶ç¾åå®è£ APP
注æäºé¡¹
æ¬é¡¹ç®æ ¸å¿åè½è°ç¨ zsign å App Store Connect API å®ç°
æ¬é¡¹ç®æ·»å å¼åè è´¦å·åä¼å ç¨è´¦å·çä¸ä¸ª iOS Development certificate åé¢ï¼æ¯ä¸ªè´¦å·æå¤åªè½å建两个ï¼ï¼æä»¥ä½ å¯è½å¾é¢çä¸ä¸ª
æ¬é¡¹ç®ä» ä½ä¸ºç»ä¸ªäººå¼åè å享èªå·±çåæ³åè§ç APP 使ç¨ï¼ä¸¥ç¦ä½¿ç¨æ¬é¡¹ç®è¿è¡ä»»ä½åä¸çå©ãæ害å®æ¹å©çãå享任ä½è¿æ³è¿è§ç APP çè¡ä¸º
æ¬é¡¹ç®å¼æºå è´¹ï¼çº¯ææ¯å享ï¼ä¸æä¾ä»»ä½å¹³å°æ¯æï¼ä¸åºäºæ¤é¡¹ç®åä»»ä½å®å¶å¼åï¼è¯·å¿æ°ï¼
æ¬é¡¹ç®è¥æ bug å¯æ交 issue ï¼ä¼æ½ç©ºç»´æ¤ï¼ä½æ¯ä¸å继ç»å¢å æ°çåè½
å ¶ä¸æ·»å å¼åè è´¦å·æéç issãkidãP8 æ件éè¦å¨ https://appstoreconnect.apple.com/access/api å建
ææé¢è§
![]() |
![]() |
---|---|
åå°ç®¡çç»å½ | å¼åè è´¦å·ç®¡ç |
![]() |
![]() |
åºç¨ç®¡ç | æ«ç å®è£ åºç¨ |
![]() |
![]() |
é¿éäº OSS 设置 | æ´æ¹ç¨æ·åå¯ç |
![]() |
![]() |
çå¾ APP æå ä¸ | å¼å§å®è£ APP |
Railway é¨ç½²
ä½¿ç¨ Railway ä¸é®é¨ç½²ï¼æ¯ææ 5 ç¾å çå è´¹é¢åº¦å¯ä»¥ç½å«ï¼
Docker é¨ç½²ï¼
æä¾äºå¤ç§é¨ç½²æ¹æ¡ä¾åèï¼ä¸åæ¹æ¡çåºå«ä»
å¨äº docker-compose.yml
çé
ç½®ä¸åï¼é¨ç½²æ¶æ ¹æ®å®é
æ
åµéæ©å
¶ä¸ä»»æä¸ç§å³å¯
é ç½® 1
éè¦åå¤çä¸è¥¿ï¼
- ä¸ä¸ªååï¼å¹¶è§£æå°ä½ çæå¡å¨IPå°åä¸ï¼ä¾å¦ï¼
example.com
- æå¡å¨å¼æ¾
80
å443
端å£ï¼å¹¶ç¡®ä¿æ²¡æè¢«å ¶å®ç¨åºå ç¨ - ä¸ä¸ªé®ç®±å°åï¼ç¨äºèªå¨å Let's Encrypt ç³è¯·å
è´¹SSLè¯ä¹¦ï¼ä¾å¦ï¼
[email protected]
å建 docker-compose.yml
ï¼å
容å¦ä¸ï¼
version: '3'
services:
server:
image: togettoyou/ipashare:latest
ports:
- "80:80"
- "443:443"
volumes:
- $PWD/data:/root/togettoyou/data
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
environment:
- SERVER_URL=https://example.com
- SERVER_TLS=true
- SERVER_AUTOTLS=true
- [email protected]
- SERVER_MAXJOB=10
- SERVER_RUNMODE=release
- LOG_LEVEL=info
ä¼ç¹ï¼å¿«éé¨ç½²ï¼èªå¨é ç½®SSLè¯ä¹¦
缺ç¹ï¼éè¦å ç¨ 80
å 443
端å£
é ç½® 2
éè¦åå¤çä¸è¥¿ï¼
- ä¸ä¸ªååï¼å¹¶è§£æå°ä½ çæå¡å¨IPå°åä¸ï¼ä¾å¦ï¼
example.com
- æå¡å¨å¼æ¾
80
å443
端å£ï¼å¹¶ç¡®ä¿æ²¡æè¢«å ¶å®ç¨åºå ç¨ - èªè¡åå¤ååçSSLè¯ä¹¦ï¼ä¾å¦ï¼
ssl.crt
åssl.key
å建 docker-compose.yml
ï¼å
容å¦ä¸ï¼
version: '3'
services:
server:
image: togettoyou/ipashare:latest
ports:
- "80:80"
- "443:443"
volumes:
- $PWD/data:/root/togettoyou/data
- $PWD/ssl.crt:/root/togettoyou/ssl.crt
- $PWD/ssl.key:/root/togettoyou/ssl.key
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
environment:
- SERVER_URL=https://example.com
- SERVER_TLS=true
- SERVER_AUTOTLS=false
- SERVER_CRT=ssl.crt
- SERVER_KEY=ssl.key
- SERVER_MAXJOB=10
- SERVER_RUNMODE=release
- LOG_LEVEL=info
ä¼ç¹ï¼å¿«éé¨ç½²
缺ç¹ï¼éè¦å ç¨ 80
å 443
端å£ï¼éè¦èªå·±åå¤SSLè¯ä¹¦
é ç½® 3
éè¦åå¤çä¸è¥¿ï¼
- ä¸ä¸ªååï¼å¹¶è§£æå°ä½ çæå¡å¨IPå°åä¸ï¼ä¾å¦ï¼
example.com
- æå®ä¸ä¸ªä»»æ空é²ç«¯å£ï¼ä¾å¦ï¼
8888
- æå¡å¨éè¦é¨ç½²å ¶å®è½å¤æ¯æåå代çåSSLçç½å ³æå¡ï¼ä¾å¦ï¼Nginx
å建 docker-compose.yml
ï¼å
容å¦ä¸ï¼
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
æ¤æ¹æ¡éè¦ä½ é¢å¤å¨ç½å ³æå¡ä¸é ç½®åå代ç以åSSLè¯ä¹¦ï¼ä»¥ Nginx é 置为ä¾ï¼
server {
listen 80;
server_name example.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl;
server_name example.com;
client_max_body_size 300m;
client_body_buffer_size 50m;
location / {
proxy_pass http://127.0.0.1:8888;
proxy_http_version 1.1;
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
ssl on;
ssl_certificate /etc/nginx/ssl/domain.crt;
ssl_certificate_key /etc/nginx/ssl/domain.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_prefer_server_ciphers on;
}
ä¼ç¹ï¼ä¸éè¦å ç¨ 80
å 443
端å£ãå¯å©ç¨ç½å
³å¼ºå¤§çè½åï¼ä¸ä¼ 大å°éå¶çï¼
å¯å¨ååæ¢
# åå°è¿è¡æå¡
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
å å
¥ä»¥ä¸ç¯å¢åé ï¼
- 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 ï¼åéå±çº§ä½¿ç¨ _
è¿æ¥ï¼å¦ MYSQL_MAXIDLE
代表 mysql
é
ç½®ä¸ç空é²è¿æ¥æ± ä¸è¿æ¥çæ大æ°é
å®å¡é¨ç½²
使ç¨å®å¡é¨ç½²ï¼æ¬è´¨ä¸æ¯ä½¿ç¨ Docker + Nginxï¼å³ Docker é¨ç½²ä¸çé ç½® 3 æ¹å¼ï¼åºå«åªæ¯å¨äºæä¾äºä¸ç§å¯è§åçæä½ã
软件ååºæç´¢å®è£ Docker管çå¨
è¿å
¥ Docker管çå¨-éå管ç-è·åéå togettoyou/ipashare:latest
å¦æä¸è½½è¾æ ¢ï¼å¯ä»¥è¯è¯éåå é
è¿å ¥ Docker管çå¨-容å¨å表-å建容å¨
å ¶ä¸å ·ä½çé ç½®å¯ä»¥åèé ç½® 3
é ç½®åå代ç以å SSL è¯ä¹¦
ç½ç«-æ·»å ç«ç¹-纯éæå³å¯
å建åå代ç
å¼å¯ SSL ï¼æ ¹æ®èªå·±éæ±ç³è¯·ï¼éè¦å¼å¯å¼ºå¶ HTTPS
å¯å¨æåååæ ·éè¿ åå/admin
ä¾å¦ https://example.com/admin
访é®åå°ç®¡ç
JetBrains å¼æºè¯ä¹¦æ¯æ
æ¬é¡¹ç®ä½¿ç¨ GoLand å¼åï¼æè°¢ JetBrains æä¾çå è´¹ææ
åæ¯å¥¶è¶
å¦æ帮å©ï¼å¯ä»¥æèµæ¯æï¼ä¸åä¹æ¯ç±ï¼
![]() |
![]() |
---|---|
微信 | æ¯ä»å® |