Files
prop-ai-hr/docs/MOBILE_APP_PACKAGING.md
T

3.9 KiB
Raw Blame History

mobile-uni 原生 App 打包

mobile-uni/ 采用 uni-app Vue 3 的 App-Plus 目标,同时保留 H5。App 不是将线上 H5 包进 WebView;前端资源通过 npm --prefix mobile-uni run build:app 编译,再由 HBuilderX 的自定义基座或云端打包生成 Android/iOS 原生安装包。

当前约定

  • Android applicationId 与 iOS Bundle ID 预设为 com.yincheng.wygj。在首次签名或注册 App ID 前,发布负责人必须确认企业实际拥有该标识;变更时 Android、iOS 必须同步修改。
  • App 直接请求 https://peilian.njzhmj.top/dev-api。不依赖 H5 开发服务器的 /dev-api proxy;地址是公开配置,不得在 App 包中放入短信、模型、签名或任何服务端密钥。
  • manifest.json 只保留不含秘密的发布配置。.keystore、.p12、.mobileprovision 与证书密码只能由发布负责人在 HBuilderX 云打包界面或受控 CI 秘密变量中提供,绝不能提交 Git。
  • Android 最低试点设备为 Android 10,iOS 最低试点设备为 iOS 15;每次发版提升 versionCode,再更新 versionName。

本地验证与出包

npm --prefix mobile-uni run generate:app-assets
npm --prefix mobile-uni run verify:app-assets
npm --prefix mobile-uni run typecheck
npm --prefix mobile-uni run build:h5
npm --prefix mobile-uni run build:app
  1. 用 HBuilderX 打开 mobile-uni,先生成 Android/iOS 自定义运行基座。标准基座不会加载当前的包名、权限、启动图或原生配置。
  2. 在真实 Android 与 iPhone 上验证手机号登录、录音并转写、TTS 播放、图片/视频/文件上传、附件下载、拒绝权限、前后台切换、刘海和底部安全区。
  3. Android 试点使用企业签名的正式 APK;上架渠道按渠道要求导出相应制品。iOS 使用企业 Apple Developer 账号的 Distribution 证书和 provisioning profile,先走 TestFlight。

发布前尚需提供的资产

  • 经法务确认并已可公开访问的《服务协议》《隐私政策》;Android 必须用该实际链接配置原生 template 隐私弹窗,iOS 需提供相应的麦克风、相机、相册/文件用途说明。
  • 无透明通道的 1024×1024 App Store 图标,以及 Android 自适应图标/启动图。
  • 企业持有的 Android 签名证书、Apple Team、Bundle ID 注册与 iOS 发布证书。上述资产缺失时可以完成代码与真机调试,不能声称已具备商店上架条件。

已接入的资产与隐私模板

  • 图标和启动图由 scripts/generate-app-assets.sh 从现有 src/static/brand-logo.png 生成,输出位于 src/static/app/,并由 manifest.json 显式关联。iOS App Store 图标为 1024×1024、无 alpha、未预制圆角;生成后可用 npm --prefix mobile-uni run verify:app-assets 校验尺寸和映射。
  • 现有品牌源图仅为 64×64,因此这里生成的是可用于自定义基座和测试包的派生资产。正式提交商店前应替换为品牌方提供的高分辨率母版,再重新执行生成和预检。
  • androidPrivacy.json.example 是未启用的法务模板,其中 __TERMS_URL__ 与 __PRIVACY_URL__ 必须替换为法务确认的 HTTPS 地址。复制为被 Git 忽略的 androidPrivacy.json 后,npm --prefix mobile-uni run verify:app-release 才会通过。
  • iOS 已按实际功能填写麦克风和照片库用途说明;不申请相机、定位、通讯录、蓝牙或广告追踪权限。
  • 真机步骤和证据口径见 docs/MOBILE_APP_DEVICE_ACCEPTANCE.md。资源预检通过不等于 Android/iOS 真机或应用商店验收通过。

更新策略

涉及原生权限、插件、证书或 App 壳的改动必须重新云打包并通过应用商店/TestFlight 发布。仅 JavaScript/CSS/静态资源的热更新(WGT)不作为首个试点版本的发布方式;如后续启用,须有版本兼容、完整性校验、灰度与回滚方案。