Browse Source
- src/theme:补充企业端与工具页所需的设计令牌 - AGENTS.md:同步分层架构、配色规范与 Git 提交规范 - screenshots:补充商店截图素材目录约定(README + capture-manifest,PNG 已由 .gitignore 排除)master
8 changed files with 195 additions and 32 deletions
@ -0,0 +1,64 @@ |
|||||
|
# 职来 · App Store / Google Play 截图流水线 |
||||
|
|
||||
|
本目录为「职来」App 的商店素材(App Store Connect + Google Play Console)准备区,遵循 |
||||
|
[Expo App Store Screenshots](https://www.npmjs.com/package/expo-app-store-screenshots) 技能的目录与命名约定。 |
||||
|
|
||||
|
## 目录结构(约定) |
||||
|
|
||||
|
``` |
||||
|
screenshots/<locale>/<device>/NN-<device>-<screen>.png |
||||
|
``` |
||||
|
|
||||
|
- `<locale>`:BCP-47 标签,当前为 `zh-CN`(App Store Connect 上传时需映射为 `zh-Hans`)。 |
||||
|
- `<device>`:`iphone` / `ipad` / `android-phone`。 |
||||
|
- `NN`:两位序号,保证排序一致(见 `capture-manifest.json`)。 |
||||
|
- `<screen>`:页面 kebab slug。 |
||||
|
|
||||
|
当前已预建:`screenshots/zh-CN/{iphone,ipad,android-phone}/`(含 `.gitkeep` 占位)。 |
||||
|
|
||||
|
## 商店目标尺寸 |
||||
|
|
||||
|
| 设备 | 尺寸 | 说明 | |
||||
|
| -------------- | ----------- | -------------------------------------- | |
||||
|
| `iphone` | 1284×2778 | App Store 6.5" 展示(捕获后缩放) | |
||||
|
| `ipad` | 2064×2752 | App Store 13" 展示(原生尺寸) | |
||||
|
| `android-phone`| 1440×3120 | Google Play 手机(9:19.5) | |
||||
|
|
||||
|
## 待捕获画面 |
||||
|
|
||||
|
见 `capture-manifest.json`。已包含本次新增的 4 个页面: |
||||
|
`skill-cloud`、`salary-calculator`、`progress`、`identity-select`,以及核心营销页 |
||||
|
(首页 / 岗位详情 / 岗位对比 / 竞争力排名 / 我的 / 选择身份)。 |
||||
|
|
||||
|
## ⚠️ 本机环境限制(Windows 家庭版) |
||||
|
|
||||
|
该技能的捕获流程依赖 **macOS(Xcode CLI `xcrun simctl`)、`adb`、ImageMagick 7+(`magick`)**, |
||||
|
当前 Windows 家庭版环境 **均不可用**,因此无法在本机直接产出真实 PNG 截图。 |
||||
|
|
||||
|
### 在 Windows 上可做的替代(预览 / 占位) |
||||
|
|
||||
|
- 打开 `preview.html`(本目录)在浏览器中查看 iPhone 设备框内的各屏视觉稿; |
||||
|
可用浏览器「截图」或打印为 PDF/PNG 作为商店素材的**版式占位**,但最终上架素材仍需真实设备截图。 |
||||
|
- 全部页面已在 `app/` 中按 Expo Router 实现,真实捕获时直接以 deep link 打开即可。 |
||||
|
|
||||
|
### 真实截图应在 macOS / 真机完成 |
||||
|
|
||||
|
1. 安装并信任 Expo App Store Screenshots 技能,获得 `assets/` 下的捕获脚本。 |
||||
|
2. 预构建并安装 release 包到 iOS 模拟器 / Android 模拟器或真机(确认 UI 与源码一致)。 |
||||
|
3. 依据 `capture-manifest.json` 的 `path` 作为 deep link 路径(`mydreamjob:///<path>`): |
||||
|
```bash |
||||
|
# 示例:iPhone 捕获(需在 macOS 执行,本机无法运行) |
||||
|
bash assets/ios-capture.sh "$IPHONE_UDID" "mydreamjob:///tools/skill-cloud" \ |
||||
|
"screenshots/zh-CN/iphone/05-iphone-skill-cloud.png" |
||||
|
``` |
||||
|
4. 缩放至目标尺寸并写入 `summary.md`: |
||||
|
```bash |
||||
|
bash assets/resize.sh "screenshots/zh-CN/iphone" 1284x2778 |
||||
|
bash assets/resize.sh "screenshots/zh-CN/android-phone" 1440x3120 |
||||
|
``` |
||||
|
5. 上传(需对应商店 API 凭据): |
||||
|
- App Store Connect:`zh-CN` → `zh-Hans`,`--device iphone|ipad` |
||||
|
- Google Play:`--image-type phoneScreenshots --dir screenshots/zh-CN/android-phone` |
||||
|
|
||||
|
> 提示:技能脚本中 `deep link` 形式为 `<scheme>:///<path>`(三段斜杠,host 为空), |
||||
|
> 与 Expo Router 一致。捕获前务必先 `assets/detect-app-config.sh` 确认 `APP_SCHEME` / `IOS_BUNDLE_ID` / `ANDROID_PACKAGE`。 |
||||
@ -0,0 +1,95 @@ |
|||||
|
{ |
||||
|
"project": "职来 (mydreamjob)", |
||||
|
"scheme": "mydreamjob", |
||||
|
"locale": "zh-CN", |
||||
|
"devices": ["iphone", "ipad", "android-phone"], |
||||
|
"targetSizes": { |
||||
|
"iphone": "1284x2778", |
||||
|
"ipad": "2064x2752", |
||||
|
"android-phone": "1440x3120" |
||||
|
}, |
||||
|
"notes": "本清单与 Expo App Store Screenshots skill 的 screenshots/<locale>/<device>/NN-<device>-<slug>.png 约定一致。NN 为两位序号,保证在 Finder / 商店后台排序一致。路由以 Expo Router 用户可见 URL 为准((tabs)/(group) 段不计入 URL)。", |
||||
|
"screens": [ |
||||
|
{ |
||||
|
"nn": "01", |
||||
|
"slug": "home", |
||||
|
"path": "/", |
||||
|
"title": "首页 · 岗位发现", |
||||
|
"group": "(tabs)", |
||||
|
"caption": "双向透明的岗位与公司的评分生态首页", |
||||
|
"devices": ["iphone", "ipad", "android-phone"] |
||||
|
}, |
||||
|
{ |
||||
|
"nn": "02", |
||||
|
"slug": "job-detail", |
||||
|
"path": "/jobs/[id]", |
||||
|
"title": "岗位详情", |
||||
|
"group": "(tabs)", |
||||
|
"caption": "岗位评分、公司口碑、维度拆解", |
||||
|
"devices": ["iphone", "android-phone"] |
||||
|
}, |
||||
|
{ |
||||
|
"nn": "03", |
||||
|
"slug": "job-compare", |
||||
|
"path": "/jobs/compare", |
||||
|
"title": "岗位对比", |
||||
|
"group": "(tabs)", |
||||
|
"caption": "多岗位横向评分对比", |
||||
|
"devices": ["iphone", "android-phone"] |
||||
|
}, |
||||
|
{ |
||||
|
"nn": "04", |
||||
|
"slug": "rank", |
||||
|
"path": "/jobs/rank", |
||||
|
"title": "同岗位竞争力排名", |
||||
|
"group": "(tabs)", |
||||
|
"caption": "百分位排名与综合评分", |
||||
|
"devices": ["iphone", "android-phone"] |
||||
|
}, |
||||
|
{ |
||||
|
"nn": "05", |
||||
|
"slug": "skill-cloud", |
||||
|
"path": "/tools/skill-cloud", |
||||
|
"title": "行业技能词云", |
||||
|
"group": "(tabs)", |
||||
|
"caption": "按行业查看高频技能与热度权重", |
||||
|
"devices": ["iphone", "android-phone"] |
||||
|
}, |
||||
|
{ |
||||
|
"nn": "06", |
||||
|
"slug": "salary-calculator", |
||||
|
"path": "/tools/salary-calculator", |
||||
|
"title": "薪资计算器", |
||||
|
"group": "(tabs)", |
||||
|
"caption": "税前到手测算 + 行业平均对比", |
||||
|
"devices": ["iphone", "android-phone"] |
||||
|
}, |
||||
|
{ |
||||
|
"nn": "07", |
||||
|
"slug": "progress", |
||||
|
"path": "/progress", |
||||
|
"title": "求职进度", |
||||
|
"group": "(tabs)", |
||||
|
"caption": "投递 / 面试 / Offer 时间轴", |
||||
|
"devices": ["iphone", "android-phone"] |
||||
|
}, |
||||
|
{ |
||||
|
"nn": "08", |
||||
|
"slug": "identity-select", |
||||
|
"path": "/identity-select", |
||||
|
"title": "选择身份", |
||||
|
"group": "(onboarding)", |
||||
|
"caption": "求职者 / 企业 HR 双端入口", |
||||
|
"devices": ["iphone", "ipad", "android-phone"] |
||||
|
}, |
||||
|
{ |
||||
|
"nn": "09", |
||||
|
"slug": "profile", |
||||
|
"path": "/profile", |
||||
|
"title": "我的", |
||||
|
"group": "(tabs)", |
||||
|
"caption": "个人中心与工具入口", |
||||
|
"devices": ["iphone", "android-phone"] |
||||
|
} |
||||
|
] |
||||
|
} |
||||
@ -1,4 +1,4 @@ |
|||||
/** |
/** |
||||
* 主题统一导出 |
* 主题统一导出 |
||||
*/ |
*/ |
||||
export { colors, darkColors } from './colors'; |
export { colors, darkColors, headerGradient, headerGradientShort, headerGradientSolid } from './colors'; |
||||
|
|||||
Loading…
Reference in new issue