深圳 App 定制开发里最贵的一类需求,不是从零做一个,而是接手别人做了一半的。前一家供应商在 v2.3 停手之后,你手上通常是一个能编译、但每周固定崩几次的双端工程,一份在对方个人账号下的签名证书,以及一个仍挂着对方主体的应用商店后台。
这种状态下判断"代码写得像不像样"没有意义。本文只谈接手与续建:签约前必须拿到什么、一周怎么测、三条续建路线的预算边界、合同怎么写死不返工。AI 功能怎么集成不在本文范围内。
一、接手前必须先拿到的东西,拿不到就直接按重写估
资产归属比代码质量更早决定结局。下面五项要在签约前逐项确认,最好落成一封双方书面确认的清单,而不是口头交接。
- 源码仓库与分支策略:要完整的 commit 历史,不要压缩包。看主干分支是否唯一、有没有 release tag 能回滚到线上版本、最近一次合并是谁做的。
- 构建脚本与签名证书归属:iOS 的 p12 与 Provisioning Profile、Android 的 keystore 与密码、CI 配置。证书的有效期和签名主体必须现场登录验证,只收文件不算拿到。
- 上架主体:App Store Connect 里这个 App 的持有者是公司账号还是个人账号;国内安卓各渠道的开发者账号实名主体是谁。
- 第三方账号与密钥托管:支付商户号、推送、地图、统计、短信、对象存储。逐个确认主体、余额与管理员邮箱,改管理员这一步最容易卡住,往往要来回确认几轮。
- 服务器与云账单:云账号实名主体、域名与备案归属、SSL、数据库备份策略,以及最近一次成功恢复演练的时间。
判断法则很简单:五项里有两项以上的所有权在对方名下、且短期内无法转移,续建预算就应按"重写加重建主体"来估,而不是按剩余功能估。
二、7 天体检测试:七项能测、可复核的检查
这段时间够不够?一份针对接手存量代码库的审计指南给出的量级是签约前抽几天做独立检视,理由是这笔投入远低于把技术债带进新合同的代价。前提是这几天测"能复现的事实",而不是坐下来读代码打印象分。
| # | 检查项 | 怎么测 | 通过标准 |
|---|---|---|---|
| 1 | 本地能否一键构建 | 干净机器 clone 后直接构建 | 30 分钟内出可安装包,不需人工改配置、不依赖个人私钥 |
| 2 | 崩溃与 ANR 基线 | 接入崩溃平台,真机连续跑一轮完整使用周期(覆盖工作日高峰与夜间低谷) | Top 5 崩溃可定位到模块;崩溃率有可比基线 |
| 3 | 支付与对账链路 | 沙盒下单→回调→退款→对账文件 | 四段全通,金额、订单号、时间戳能对上 |
| 4 | 埋点与推送是否断链 | 追一条事件到落地表,推一条到真机 | 事件不丢、字段不缺,推送到达率可测 |
| 5 | 依赖版本与已知漏洞 | 导出依赖清单,做 SBOM 与许可扫描 | 无高危已知漏洞,无未声明的许可冲突 |
| 6 | 双端 UI 一致性 | 同一份设计稿在 iOS 与 Android 逐屏比对 | 偏差有清单且可解释,确认是否两套独立实现 |
| 7 | 上架主体变更路径 | 查 App Store Connect 持有者与各安卓渠道主体 | 转让路径明确、时间可排期、证书未过期 |
排期可以按这个切法走:
- D1–D2:收齐五项资产,在干净机器上从 clone 跑到出安装包,记录卡住的每一步。
- D3:崩溃与 ANR 基线,接崩溃平台连续跑一轮完整使用周期(覆盖工作日高峰与夜间低谷)。
- D4:支付与对账,沙盒下单、回调、退款、对账文件四段都要走通。
- D5:埋点与推送的端到端链路,加依赖清单与许可扫描。
- D6:双端 UI 一致性比对,以及上架主体变更路径确认。
- D7:出报告——按优先级排序的风险清单、整改估算、续建基线。
报告形态建议对齐审计行业的标准产出:一份按优先级排序的缺陷与风险清单、一份整改估算,以及一个可以直接用于范围划定、报价与合同谈判的基线。缺了第三样,体检就只是一份抱怨清单。
第七项是最容易被低估的。按 Apple 官方流程,发起转让后 App 会保持原状态并标注"App 转让待处理",等待接收方接受,转让有效期为 60 天;转让待处理期间,你作为转让方无法编辑元数据、定价、销售范围与 App 内购买项目(Apple 官方转让文档)。所以 60 天不是宽限期,而是排期表上的硬约束:中途失效就得从头发起,这段时间里产品连改价都做不了。
第五项在 2026 年还多了一层含义。技术尽调的实操清单已经把代码来源列成独立检查项:查 commit 历史、依赖清单、SBOM 与许可扫描,因为模型输出一旦复现了受许可约束的代码,就是一笔知识产权风险敞口(技术尽调清单)。接手 AI 参与过的工程,这一项不能省。
关于数据口径也说明一句:本文不提供"我们接过多少个存量 App"这类数字。自家页面上的计数换不来可核验的交付事实,这一点在你自己询价时同样适用。
三、三条续建路线的工期与预算边界
体检报告出来之后,路线选择其实是被数据决定的,不是被预算决定的。三种走法各有明确的适用状态:
| 路线 | 适合的项目状态 | 预算怎么估 | 主要风险 |
|---|---|---|---|
| 原栈修补 | 干净机器能一键构建;崩溃集中在少数模块;依赖未过期;主体可转移 | 剩余需求人天 + 技术债利息(修补量取决于体检发现的债务集中度,需逐项估算,不给通用比例) | 债务利息到第三个迭代才显现,容易被当成需求变更扯皮 |
| 局部重构 | 业务模型清楚(登录、支付、订单的数据结构合理),但实现混乱或双端各写一套 | 被替换模块人天 + 数据迁移 + 双跑验证期 | 双写期间数据不一致;旧数据缺字段,清洗工作量常被漏算 |
| 重写 | 构建不可复现、几乎没有测试、双端无共用层,或主体与密钥不可转移 | 按新项目人天算,但不能省掉迁移与主体变更 | 把重写当成"重新开始",丢掉业务规则——这是最贵的一种坑 |
为什么"报价明显低于原合同"通常意味着漏项?同一份审计指南里有一组可直接引用的观察:三家机构对同一个存量产品报价,成本与工期通常相差 2 到 3 倍,这不是贪婪,是不确定性定价。踩过坑的团队会在报价里加三成到五成的风险缓冲,没踩过的先低价中标、中途再谈;原文举的例子是一个 $60,000 的构建重新划定范围后变成 $95,000 到 $130,000(来源)。
换算到国内语境:比你原来的合同便宜一大截、还承诺更短工期的报价,大概率只覆盖了"能编译、主流程能点"的那一段,体检、补测试、迁移与主体变更都没进报价单。同一来源还引述了 McKinsey 对 CIO 的调研:技术债大约相当于技术资产折旧前价值的两成到四成。你现在买的正是这块看不见的负债。
优码云接这类项目时把两件事写进流程。一是双周迭代交付:每两周给一个可运行增量并现场演示,接手项目尤其需要这个,它把"进度"从口头承诺变成可验证的验收动作。二是 AIcoding 链路下,把可规格化的实现工作交给 AI 完成,工程师的时间集中在架构决策与最后一公里把关。
但边界得说清楚:AI 的提效最集中在规格清晰、测试可跑的部分。存量项目恰恰这两样都缺,所以体检和补回归测试的头两周不会因为 AI 变快,第三周之后才开始体现。谁跟你承诺"接手项目也能用 AI 三天出结果",基本没做过接手。
如果你还没定承接方,而处在选公司阶段,可以先看我们整理的深圳软件开发公司怎么选:报价构成拆解与合作避坑清单,里面给的是可核验的指标,不是报价单。
两篇可以配合读:深圳软件定制开发报价怎么算能帮你核对手上续建报价的构成,移动端软件定制开发 ROI 拆解里的隐性成本口径与本文的七项体检是同一套算法。
四、四条必须写进合同的条款
接手项目返工,八成不是技术问题,是合同没写清。以下四条建议逐条落字:
- 知识产权与源码托管:代码、文档、设计稿、CI 配置的权利归属写清;约定每两周同步推送到你持有的仓库,而不是交付时打包给你。账号所有权归你,承接方只有协作者权限。
- 验收标准:写成"可运行交付物 + 可复现步骤 + 通过判据"。例如支付链路四段全部跑通并附对账文件样例,而不是"功能正常"。验收人是谁、几个工作日内确认也要写。
- 双周迭代交付节点:节点绑定可演示的增量与付款比例;任何一方终止时,按已交付增量结算,不留"到底做完了多少"的模糊空间。
- AI 使用与代码归属约定:要求承接方提供 AI 生成代码的清单与许可审查记录,把 SBOM 与许可扫描列为交付物;出现第三方许可争议时,替换成本由承接方承担。同一份技术尽调清单已经把有书面 AI 编码工具使用政策、并能提供执行证据列为成熟度信号,缺失本身就是一项发现。
再补一条防交接事故的:终止或更换团队后 5 个工作日内交付仓库、密钥与账号清单,逾期按日计违约金。写进去几乎零成本,不写进去的代价是上架主体卡在对方电脑里。
如果你手上正好有一个半成品工程,可以先做一次体检再谈预算:联系我们提交项目现状,或者先看已交付案例了解我们的交付形态。
常见问题
App 定制开发多少钱?接手项目怎么报价?
主流按人月计价,总价取决于范围。接手项目要拆成两段报:体检(固定工作量、固定交付物)和续建(按路线区间报)。需求还没厘清就给精确总价的,应视为风险信号。
二手源码能不能直接接着做?
能,但前提是七项检查里第 1 项(一键构建)和第 7 项(主体可转移)都过。这两项不过,接下来每一次改动都在还旧债,修补成本会超过重写。
换外包公司时,旧代码要不要一并要回来?
要,而且要历史 commit 和 CI 配置,不只是一份代码包。没有构建脚本和历史记录的代码,接手方需要额外花时间重建环境,这部分通常计在体检费里。
iOS 和安卓的上架主体变更要多久?
iOS 走 Apple 的 App 转让流程,转让有效期为 60 天,需接收方接受后生效。国内安卓各渠道的实名主体变更要求不一致,要按渠道逐个排期,不能按 iOS 的时间类比。
体检能不能自己内部做?
第 2、4、5 项完全可以自己做:崩溃基线、埋点链路、依赖扫描都有现成工具。第 1 项和第 3 项也可以,但需要一台干净机器和支付沙盒账号。建议自测这几项,把第 6、7 项交给外部做,因为一致性判断和主体变更路径需要第三方视角。
