Skip to content

Commit 00a2d39

Browse files
authored
Merge pull request #2 from devsapp/release-repack
release repack for better performance
2 parents b95ef18 + d96eda5 commit 00a2d39

4 files changed

Lines changed: 46 additions & 196 deletions

File tree

publish.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Type: Application
22
Name: start-repack-apk
3-
Version: 0.0.3
3+
Version: 0.0.4
44
Provider:
55
- 阿里云
66
Description: 基于 CDN + Custom 运行时实现 apk 实时打渠道包

readme.md

Lines changed: 0 additions & 173 deletions
This file was deleted.

readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
src/README.md

src/README.md

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,29 +63,45 @@
6363

6464
![](https://img.alicdn.com/imgextra/i2/O1CN019seP901UxWBt9D8h7_!!6000000002584-2-tps-2120-668.png)
6565

66-
本应用主要部署后端的函数,部署成功后, 您会获取一个 url, 比如为 `http://get-apk.apk-repack.1986114430573743.cn-hangzhou.fc.devsapp.net`
66+
本应用主要部署后端的函数,部署成功后, 您会获取一个 访问域名的 url, 比如为 `https://get-apk-apk-repack-evbilghzjb.cn-hangzhou.fcapp.run`
6767

6868
之后登录 [CDN 控制台](https://cdn.console.aliyun.com/) 完成配置:
6969

70-
#### 添加域名
71-
![](https://img.alicdn.com/imgextra/i3/O1CN01aDJ7ed1U2j50vyStH_!!6000000002460-2-tps-1291-942.png)
70+
### 添加域名
7271

73-
#### 域名管理
74-
1. 根据控制台引导, 完成域名的 CNAME 解析
75-
![](https://img.alicdn.com/imgextra/i2/O1CN01iZLk411kJFDJZ9Pn8_!!6000000004662-2-tps-1535-229.png)
72+
比如您有一个名为 `functioncompute.com` 的域名, 如下图所示, 我添加了 `apk-cdn.functioncompute.com`, 源站的域名为前面应用部署的访问域名 url(*注意是 host,不用填写前面的 https://*), 比如本示例为 `get-apk-apk-repack-evbilghzjb.cn-hangzhou.fcapp.run`
7673

77-
2. 完成管理配置, 主要完成回源配置的域名和开启 Range 回源强制
78-
![](https://img.alicdn.com/imgextra/i2/O1CN01HDjf111JqE79AaKgQ_!!6000000001079-2-tps-1024-327.png)
74+
> 其中前缀 apk-cdn 可以随便, 由您这边自己想最后暴露出去的 url 决定
7975
80-
![](https://img.alicdn.com/imgextra/i1/O1CN01JKdUXF1VhJndHKVPs_!!6000000002684-2-tps-934-417.png)
76+
![](https://img.alicdn.com/imgextra/i2/O1CN01KX6FhL1sjp9I1US8M_!!6000000005803-2-tps-1372-840.png)
77+
78+
79+
### 域名管理
80+
81+
#### 1. 根据控制台引导, 完成域名的 CNAME 解析
82+
83+
![](https://img.alicdn.com/imgextra/i4/O1CN01tmlyC222ln0TTrFt1_!!6000000007161-2-tps-956-1372.png)
84+
85+
![](https://img.alicdn.com/imgextra/i1/O1CN01htbiOc1DZNsDqDC9C_!!6000000000230-2-tps-2348-670.png)
86+
87+
![](https://img.alicdn.com/imgextra/i4/O1CN01vKUcG21RGWBEd8eBT_!!6000000002084-2-tps-2586-244.png)
88+
89+
#### 2. 完成管理配置, 主要完成回源配置的域名和开启 Range 回源强制
90+
91+
![](https://img.alicdn.com/imgextra/i4/O1CN01d9cRsx23rZckwYqmF_!!6000000007309-2-tps-2646-716.png)
92+
93+
> 域名应用部署成功后返回的访问域名 url 的 host, 比如本示例为 `get-apk-apk-repack-evbilghzjb.cn-hangzhou.fcapp.run`
94+
95+
96+
![](https://img.alicdn.com/imgextra/i3/O1CN01W8rPnG1R1rVDcK7TN_!!6000000002052-2-tps-2612-854.png)
8197

8298
#### 使用浏览器断点下载指定渠道 apk 包
8399

84100
比如:
85101

86-
`http://xiliu.functioncompute.com/foo?src=fc-imm-demo/test-apk/qq.apk&cid=uc`
102+
`http://apk-cdn.functioncompute.com/foo?src=fc-imm-demo/test-apk/qq.apk&cid=uc`
87103

88-
`http://xiliu.functioncompute.com/foo?src=fc-imm-demo/test-apk/qq.apk&cid=xiaomi`
104+
`http://apk-cdn.functioncompute.com/foo?src=fc-imm-demo/test-apk/qq.apk&cid=xiaomi`
89105

90106
其中
91107
- `xiliu.functioncompute.com` 表示 cdn 对外的域名
@@ -95,8 +111,6 @@
95111
**Tips**
96112

97113
- 用户在自己程序中获取渠道信息, 只需要读取 apk 包中 `assets/dap.properties` 文件中的内容即可
98-
- 应用生成的 url, 比如上篇幅中介绍的 `http://get-apk.apk-repack.1986114430573743.cn-hangzhou.fc.devsapp.net` 为临时测试域名, 您可以切换成您自己的生产域名
99-
> [配置自定义域名](https://help.aliyun.com/document_detail/90763.htm)
100114

101115
- 换用自己的证书, 只需要换掉 target/cert 下面的文件即可:
102116
> jarsigner 将 .keystore 文件作为 RSA 密钥的来源,要将其转换为 golang 可识别的 .pem,我们需要以下几行:
@@ -114,6 +128,23 @@
114128
# cert pem
115129
$ openssl pkcs12 -in test.p12 -nokeys -out test-cert.pem
116130
```
131+
# 本地调试
132+
133+
1. 将测试证书放置在如下位置
134+
135+
```bash
136+
CertPEM_PATH = "/tmp/cert/test-cert.pem"
137+
PrivateKeyPEM_PATH = "/tmp/cert/test-priv.pem"
138+
```
139+
140+
2. 编译, 生成的二进制可执行文件名字为 repack
141+
142+
3. Run Local
143+
144+
```bash
145+
$ RUN_LOCAL=true OSS_ENDPOINT=http://oss-cn-qingdao.aliyuncs.com SOURCE_OBJECT=test/test_pack.apk CHANNEL_ID=xiaomi ACCESS_KEY_ID=xxx ACCESS_KEY_SECRET=yyy ./repack
146+
```
147+
> 注意将相关 ENV 设置您自己的值即可
117148

118149
# 打包原理
119150
对于一个原始的 apk 文件,将一个新文件添加到存档中,然后对 apk 重新签名获取新的 apk 文件。等价于以下命令相同的效果:

src/s.yaml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,6 @@ services:
6565
- POST
6666
- HEAD
6767
authType: anonymous
68-
customDomains:
69-
- domainName: auto
70-
protocol: HTTP
71-
routeConfigs:
72-
- path: /*
73-
methods:
74-
- GET
75-
- POST
76-
- HEAD
7768
# next-function: # 第二个函数的案例,仅供参考
7869
# # 如果在当前项目下执行 s deploy,会同时部署模块:
7970
# # helloworld:服务hello-world-service,函数cpp-event-function

0 commit comments

Comments
 (0)