feat: improve runtime setup and guidance

This commit is contained in:
xweiba
2026-08-08 15:18:40 +08:00
parent 3499f080d7
commit b07fa61195
54 changed files with 1794 additions and 325 deletions
+81
View File
@@ -0,0 +1,81 @@
# 社区客户端教程与截图提交
我们公开征集 Shadowrocket、Surge、Quantumult X、Loon、Stash 和 Egern 的配置教程与真机截图。
提交内容会经过复核、统一裁剪和标注后再进入 App 或项目文档。
## 客户端分区
投稿 Issue 使用 `community-config` 总标签,并按客户端增加以下分区标签:
| 客户端 | 分区标签 |
|---|---|
| Shadowrocket | `client-shadowrocket` |
| Surge | `client-surge` |
| Quantumult X | `client-quantumultX` |
| Loon | `client-loon` |
| Stash | `client-stash` |
| Egern | `client-egern` |
App 打开的投稿链接会预填对应标签、客户端名称和模板。采纳后的配置在 README 客户端状态表中按客户端收录,
并链接到教程或原始投稿。投稿者可以选择匿名收录;未选择匿名时可在 README 中显示 GitHub 账号。
## 提交内容
请提供:
1. 客户端名称和版本;
2. iOS 版本;
3. 从导入模块到启用代理的完整操作步骤;
4. 每一步对应的原始截图文件名;
5. 需要点击、开启或填写的位置说明;
6. 最终是否验证通过,以及失败时看到的错误。
推荐按下面的格式描述步骤:
```text
客户端:Shadowrocket
版本:
iOS 版本:
步骤 1
- 截图:01-module-list.jpg
- 操作:点击右上角“+”
步骤 2
- 截图:02-https-decryption.jpg
- 操作:开启 HTTPS 解密,并填写 gs-loc.apple.com
验证结果:
```
## 截图要求
- 提交原始、清晰、未压缩过度的截图。
- 除敏感信息遮挡外,不要自行添加箭头、编号、边框、说明文字或其他标注。
- 不要为了突出某一步自行裁剪。请在步骤说明中写清需要点击或填写的位置,由维护者统一裁剪和编号。
- 同一张截图可以对应多个步骤,请分别说明每个步骤的位置和顺序。
- 可以遮挡账号、订阅地址、节点、密码、设备标识、开发者账号、真实位置和通知内容。
- 必须完整遮挡证书私钥、认证 Token、Cookie、完整订阅链接以及其他可用于访问账户或服务的信息。
- 遮挡后请再次检查状态栏、列表副标题、输入框、二维码和弹窗,避免遗漏。
- 建议使用稳定、描述性的英文文件名,例如 `shadowrocket-https-decryption.jpg`
维护者会保留未标注的脱敏原图,并在 App 中使用统一的编号圆点和步骤文字叠加标注。这样同一张图可以复用
多个步骤,客户端界面变化时也能单独替换截图而不重做整套教程。
原图按客户端或运行模式分类保存:
```text
docs/onboarding-screenshots/
├── app-mode/
└── shadowrocket/
```
App 使用的裁剪、压缩和编号版本保存在 `Resources/Assets.xcassets/`,不得覆盖上述原图。新增客户端时创建
独立的小写英文目录,例如 `surge/``quantumult-x/`
## 审核边界
- 教程必须来自实际客户端操作,不能把未验证配置描述为已支持。
- 截图和步骤不得包含付费节点、共享账号、破解内容或绕过服务限制的方法。
- 项目只审核教程是否清晰、是否脱敏以及是否能复现,不为第三方客户端、订阅服务或网络环境提供担保。
- 后续客户端版本变化导致界面或步骤失效时,教程可能被标记为待复核或替换。
+20
View File
@@ -0,0 +1,20 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<rect width="1024" height="1024" fill="#087FF5"/>
<path
d="M168 736 C292 736 284 590 420 590 C520 590 514 458 606 458"
fill="none"
stroke="#FFFFFF"
stroke-width="42"
stroke-linecap="round"
opacity="0.42"
/>
<circle cx="168" cy="736" r="50" fill="#35D6C1" stroke="#FFFFFF" stroke-width="24"/>
<path
d="M656 156 C488 156 370 276 370 434 C370 638 656 878 656 878 C656 878 942 638 942 434 C942 276 824 156 656 156 Z"
fill="#FFFFFF"
/>
<circle cx="656" cy="420" r="126" fill="#FF453A"/>
<circle cx="656" cy="420" r="48" fill="#FFFFFF"/>
</svg>

After

Width:  |  Height:  |  Size: 681 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB