它没有复杂的功能,也没有什么宏大的叙事。
它只是一个很小的工具,用来解决一个很具体的场景:
出门以后,突然开始怀疑自己。
门锁了吗?燃气关了吗?灯关了吗?空调关了吗?证件带了吗?酒店房间有没有落东西?
很多时候,其实不是忘了。
而是明明已经检查过了,但走出去几分钟后,脑子又开始回放:
“我刚刚是真的确认过,还是只是想了一下?”
这个感觉挺烦的。
所以我做了 LookOnce。
它不是待办清单。
待办清单解决的是:
我还有什么没做?
但 LookOnce 想解决的是:
我已经确认过了吗?
这两个问题其实不一样。
待办清单会让你记住更多事,而 LookOnce 想让你少想一件事。
出门前打开 App,选择一个场景,比如:
出门前
离开酒店
睡前
旅行前
贵重物品
然后一项一项确认。
门锁,确认。燃气,确认。灯光,确认。空调,确认。证件,确认。
确认完之后,你不用再靠记忆反复回想。
因为 App 里已经留下了一次确认记录。
为什么做这么小的东西?
其实一开始我也纠结过。
现在大家都在做 AI、大模型、Agent、自动化工具,好像不做点复杂的东西,就不算产品。
但我后来发现,真正能被自己用起来的东西,往往不是因为它复杂,而是因为它刚好解决了一个很烦的小问题。
LookOnce 就是这样来的。
它没有账号。
没有服务器。
数据只保存在本机。
也不想做成另一个庞大的效率系统。
我只希望它打开得快、确认得快、结束得快。
用完就走。
不要让用户在 App 里停留太久。
这可能也是我这次做产品最大的感受:
有些 App 的价值,不是让你多用它,而是让你更快离开它。
上架过程并不顺利
第一次提交审核的时候,我就被拒了。
原因是内购。
审核员点击购买后,App 卡在了 “Purchasing...” 状态。
也就是说,商品能加载出来,价格也能显示,但是购买流程没有正确结束。
后来排查才发现,是 StoreKit 的购买结果没有处理完整。
购买并不只有成功。
还有:
用户取消
pending
失败
未知状态
如果这些状态没有正确收尾,界面就会一直卡住。
这也是我第一次真正体会到:
App Store 审核不是只看你的功能有没有做出来。
它会真的去点,真的去测,真的去看边界情况。
后来我重新修了内购流程,处理了所有 purchase result,也加了交易监听和恢复购买逻辑,重新提交后才通过。
中国区还没上架
目前 LookOnce 已经在部分地区上架。
但中国大陆区还没有。
原因是 ICP 备案。
虽然 LookOnce 没有自建服务器,也不提供互联网信息服务,只使用 Apple 内购和可能的 iCloud 同步,但苹果后台还是默认要求中国区提供 ICP 备案号。
我已经提交了豁免说明,正在等结果。
这个过程也算是第一次真正走完整个 iOS 上架流程后才知道的坑。
以前只是听别人说。
现在轮到自己踩一遍了。
这只是第一版
第一版 LookOnce 还很小。
但对我来说,它有一个意义:
这是我第一次把一个自己的想法,从想法、设计、开发、真机测试、内购、审核,到最后真正放到 App Store 上。
不是 Demo。
不是半成品。
而是一个真的可以被别人下载、安装、使用的 App。
这个过程里面,我用了很多 AI 工具辅助开发,也踩了很多第一次做 iOS App 才会遇到的问题。
后面我会继续记录:
App Store 上架流程
内购买断怎么配置
TestFlight 怎么测试
第一次被拒怎么处理
多语言和截图怎么准备
推广到底有没有效果
最后到底有没有人愿意付费
这件事不一定成功。
但至少,我不只是一直在替别人完成需求。
我也开始把自己的一个小想法,真的做出来了。
LookOnce 的一句话是:
Check once. Let it go.
确认一次,然后放下。
希望这个小工具,也能帮到和我一样,出门后总会突然怀疑自己的人。

夜雨聆风