在线下载、安装App的服务器
基于Sanic
搭建的简单App
在线下载、安装服务器。可在线下载安装包, 或者iPhone
在线安装ipa。
首页
上传App
App详情页
App编辑页
RESTful
的API更多…
把Config
的host
修改为本机地址
# linux系统请注意, 需要安装libpng12(centos已测试, 其它系统还没测试), MacOSX系统不需要
`yum install libpng12` # centos
git clone https://github.com/skytoup/AppServer
cd AppServer
gcc vendors/pngdefry/pngdefry.c -o pngdefry # 编译pngdfry
pip install -r requirements.txt # 安装依赖
python main.py # 运行服务器
open https://your_bing_host:8000
# or 打开浏览器, 输入https://{Config的host}:8000, 回车git clone https://github.com/skytoup/AppServer
cd AppServer
app/config/config.py:BaseConfig.host
为需要绑定的ip地址, 设置错误会导致iOS无法在线下载安装ipadocker build -t app_server ./
docker run -d -p 8000:8000 -v /path/to/data:/www/AppServer/data -v /path/to/log:/www/AppServer/log --name AppServer app_server
# ordocker run -d -p 8000:8000 --name AppServer app_server
open https://your_bing_host:8000
# or 打开浏览器, 输入https://{Config的host}:8000, 回车pip install -r requirements_test.txt
pytest -q tests
不是专业前端, 只是简单做了一个非常简陋的, 请勿介意😅
详情请看 👉 传送门: AppServerHTML
证书使用的是自签证书, 每次修改Config
的host
后, 会自动重新生成
https
, 不是http
iPhone
安装ipa需要在App详情的界面里面点击安装证书, 因为证书是自己生成的, 不能免证书安装(iOS9以上系统安装完证书后, 还需要在设置那里信任一下证书, 请参考: 苹果iOS9系统安装应用证书信任操作指导)centos
和ubuntu
安装可能出现的问题 👉 传送门linux
运行aapt
需要安装libpng12
, centos: yum install libpng12
更详细请看 👉 FAQ
{
code: int, # 请参考👇的表
ok: bool, # 是否请求成功
msg: str, # 请求返回的信息
datas: dict/array, # 请求返回的数据
}
code | 描述 |
---|---|
0 | 成功 |
-1 | 失败 |
POST /upload/app
Form
参数 | 必填 | 描述 |
---|---|---|
pcakage | y | 上传的安装包 |
msg | n | 更新说明 |
返回datas: object or not(上传不存在的App时, 才有返回)
参数 | 描述 |
---|---|
id | App的id |
type | 安装包类型, 0: iOS, 1: Android |
name | 名称 |
icon | 图标 |
detail | 介绍 |
short_chain | 短链接 |
package_name | 包名 |
create_at | 创建时间 |
GET /apps/<app_type>/page/<page>?t=<time>
参数 | 必填 | 描述 |
---|---|---|
app_type | y | 安装包的类型: iOS、android、all |
page | y | 页码, 从1开始 |
time | y | 当获取第一页时, 为当前时间戳; 获取其它页时, 为获取第一页的时间戳 |
kw | n | 按照App名称过滤 |
返回datas: array
参数 | 描述 |
---|---|
id | App的id |
type | 安装包类型, 0: iOS, 1: Android |
name | 名称 |
icon | 图标 |
detail | 介绍 |
short_chain | 短链接 |
package_name | 包名 |
version_name | 最后上传安装包的版本名称 |
version_code | 最后上传安装包的版本号 |
create_at | 创建时间 |
GET /apps/<app_id>
参数 | 必填 | 描述 |
---|---|---|
app_id | y | App的id |
返回datas: dict
参数 | 描述 |
---|---|
id | App的id |
type | 安装包类型, 0: iOS, 1: Android |
name | 名称 |
icon | 图标 |
detail | 介绍 |
short_chain | 短链接 |
package_name | 包名 |
create_at | 创建时间 |
DELETE /apps/<app_id>
参数 | 必填 | 描述 |
---|---|---|
app_id | y | App的id |
返回datas: 无
参数 | 描述 |
---|---|
PUT /apps/<app_id>
Json
参数 | 必填 | 描述 |
---|---|---|
app_id | y | App的id |
- | - | - |
name | n | 名称 |
short_chain | n | 短链 |
detail | n | 简介 |
返回datas: 无
参数 | 描述 |
---|---|
GET /apps/<app_id>/versions/page/<page>?t=<time>
参数 | 必填 | 描述 |
---|---|---|
app_id | y | App的id |
page | y | 页码, 从1开始 |
time | y | 当获取第一页时, 为当前时间戳; 获取其它页时, 为获取第一页的时间戳 |
返回的datas: array
参数 | 描述 |
---|---|
id | App Version的id |
app_id | App的id |
version_name | 版本名 |
version_code | 版本号 |
package | 安装包下载地址 |
size | 安装包大小 |
update_msg | 更新信息 |
create_at | 创建时间 |
plist | plist下载地址, App类型为iOS时, 才有此字段 |
DELETE /apps/<app_id>/versions/<app_version_id>
参数 | 必填 | 描述 |
---|---|---|
app_id | y | App的id |
app_version_id | y | App Version的id |
返回datas: 无
参数 | 描述 |
---|---|