iOS Widget 发布签名踩坑:pbxproj、entitlements 与 aps-environment

背景:主 App 能发,Widget 却签不过某 AI 日记应用iOS 客户端在 2026-10-15 迎来小组件与灵动岛(一次提交:iOS widgets and dynamic island, comic sharing and orientat...

项目实践

OTA 签名更新与 EdgeOne 加速:热更新也要防篡改

背景:不经过 App Store,也能修东西某 AI 日记应用是 Expo / React Native 应用,iOS 客户端是主要载体之一。发版有两条路:走 App Store 审核、更新整个 App;或 OTA(Over-The-Air...

项目实践

蓝绿零停机部署:一台 VPS 上的双槽位滚动发布

背景:一台 VPS,也要零停机某 AI 日记应用服务端跑在一台 VPS 上。小团队常见部署是“停旧、起新”:先停旧容器再拉起新容器,中间几秒到几十秒空窗,用户正好在写日记、提交时撞上发布窗口,就会遇到连接失败。对日记应用来说,这种中断尤其糟糕。 20...

项目实践

Vercel SPA 深链 404:三次改写失败的复盘

背景:首页能开,深链全是 404某 AI 日记应用的前端是单页应用(SPA)。SPA 有个部署特点:首次打开首页,服务端返回一个 HTML 入口,之后页面切换由前端路由在浏览器里完成;但用户直接打开深链如 /home,或刷新子页面,服务端必须把请求也...

项目实践

API v2 拆分:游标分页、懒加载与 ETag 304

背景:一个大接口撑不住了某 AI 日记应用是 Expo / React Native 统一客户端加服务端的 AI 日记 / 漫画应用。早期客户端常走一个很“全”的入口:一次请求想把聊天、日记、书库、总览都拿回来。数据量小的时候很舒...

项目实践

从 SQLite 到 PostgreSQL:48 张表的迁移与 Redis 协调

说明:本次草稿依据提交记录,未逐行核对实现。提交未给出迁移脚本的具体 SQL 与细节;查不到的只讲思路,不编造迁移脚本的具体 SQL。 背景:SQLite 到此为止本项目服务端早期用 SQLite,后来切换到 PostgreSQL。一次提交(20...

项目实践

短信验证码:阿里云 PNVS 接入、腾讯兜底与发送限流

说明:本次草稿依据提交记录,未逐行核对实现。提交未给出阿里云 API 的具体参数与细节;查不到的只讲思路,不编造阿里云 API 的具体参数名。 背景:短信是入口,也是最易被滥用的入口在本项目,手机号验证码是统一登录入口的一部分。README 记载...

项目实践

Apple Sign-in:原生与 Web 双端接入及双域名容灾

说明:本次草稿依据提交记录,未逐行核对实现。提交未给出回调地址与配置细节;查不到的只讲思路,不编造回调 URL 的具体值。 背景:入口统一,接入方式不同本项目的登录取向很明确:手机号验证码、Google 与 Apple 走统一注册、登录入口,按 ...

项目实践

角色向导与多风格肖像:从一张参考照到可复用的角色

说明:本次草稿依据提交记录,未逐行核对实现。提交未给出模型、参数与细节;查不到的只讲思路,不编造具体生成模型名或参数。 背景:角色是日记与漫画的共同底座在某 AI 日记应用,角色不只是一个头像。它要同时服务于写日记时的聊天参考与生成漫画时的人物形...

项目实践

漫画生成流水线:风格工厂、Prompt 编译与多页阅读器

说明:本次草稿依据提交记录,未逐行核对实现。提交只写了做了什么,未给出每一处细节;查不到的,本文只讲思路,不补具体文件名、函数名与参数。 背景:难点在“成组”,不在“单张”某 AI 日记应用是 AI 日记应用:先写日记、聊天,再把一天变成内容。漫...

项目实践
12

2024 | ixs.im
此情此景, [随机]吟诗一首: