构建通过 · 签名阻塞2026-09-01

Gate F0 · F0-02 · Controlled fixture readiness

Fixture 已能稳定编译,真机重绑停在开发签名前置

本轮完成 Perfowl 自有 PerformanceProbeFixture 的可控负载、Marker 和受控 Crash 设计,Release iphoneos 未签名构建通过。当前专用钥匙串缺 Apple Development 身份,现有开发 profile 又与可用证书/私钥不匹配,因此按停止条件未安装、未启动、未伪造 PID/generation 证据。

源码完成Release arm64 PASS隐私脱敏签名 BlockedF0-02 Partial

Verdict

分层结论

源码和未签名真机构建已通过。
Info.plist 可解析,Swift Release 编译链接成功,产物为 arm64 / iOS 16.0,Bundle ID 为 com.perfowl.performancefixture,没有非系统动态依赖。
签名、安装和运行时是三个独立状态。
未签名构建成功不等于可安装。本轮签名未成功,所以安装和 PID/start/generation 重绑均标记为 Not Run。
PASS
未签名 Release 构建
0
Apple Development 身份
0
精确可签名候选

Fixture scope

可控场景和证据 Marker

场景输入证据边界
CPU1/2 worker · 30s,1 worker · 5s,手动停止Marker 记录 worker 数和时长,不假定线程固定在某个核
内存+10/+50 MiB、20 → 40 → 80 MiB 阶梯、释放分配值是输入;实际 RSS 回收由后续采集验证
主线程50/100/150/250 ms Stallstart/end Marker 建立共同时间点
显示回调请求 30/60/120 Hz 并显示回调 FPS明确不把 CADisplayLink 回调值宣称为最终呈现帧率
网络GET,1–1024 KiB POST记录方法、状态、字节和耗时;不写入业务账号
生命周期scene phase、启动 PID/Bundle、受控 CrashCrash 必须人工二次确认

所有关键事件使用 PERFOWL_FIXTURE 前缀,包含单调 sequence 和 system uptime,供后续重启后切分 generation。

Build evidence

构建产物检查

检查结果判定
Configuration / SDKRelease / iphoneos / generic iOSPASS
Bundle / Minimum OScom.perfowl.performancefixture / 16.0PASS
Mach-O64-bit arm64 executablePASS
签名 / embedded profileunsigned / absent符合本次未签名检查
非系统动态依赖0无 Probe / 无注入依赖

Signing gate

签名阻塞的根因链

  1. 专用钥匙串可解锁

    仅执行 unlock,未修改 partition list 或私钥 ACL。可见 4 个分发签名身份,但 Apple Development 身份数为 0。

  2. 现有开发 profile 不构成签名对

    有 1 个未过期 development profile 覆盖当前 USB 设备与 Bundle ID,但它包含的开发证书与本机可用私钥身份不匹配。

  3. 两条签名路径都已实测

    手动使用现有 profile 因 certificate mismatch 失败;Xcode automatic provisioning 因未配置开发者账号且没有可生成的 profile 失败。

最小解锁条件
在 Xcode 中登录目标 Apple Developer 团队并允许自动签名,或提供同团队、含私钥的 Apple Development 身份及匹配 development profile。解锁后可直接续跑签名、安装和两轮 launch/kill/relaunch 时间线。

Evidence boundary

本轮证明了什么

层级状态证据
源码PASS场景、Marker、Bundle 与项目配置已复核
编译PASSRelease iphoneos 产物和 Mach-O 检查
签名BLOCKED身份/profile/设备/Bundle 精确匹配为 0
安装NOT RUN没有有效签名 App,按停止条件跳过
运行时重绑NOT RUN尚无真机 PID/start/generation 时间线

Artifacts

脱敏证据包

仓库中不保留原始设备标识、设备名、证书名、证书指纹、Team ID、profile 名或钥匙串密码。
只保留构建哈希、候选数量、失败分类、状态边界和后续所需的最小条件。

Resume point

解锁签名后的续跑顺序

  1. 签名产物复核

    验证 codesign、embedded profile、application identifier、设备覆盖、arm64 和非系统依赖。

  2. 安装与可见性

    优先使用 CoreDevice install;若本机 CoreDevice 仍异常,使用 pymobiledevice3 对显式 USB 设备安装,只保留目标 App 行。

  3. 两轮重绑时间线

    bundle → executable → PID/start → exit → PID absence → relaunch → new PID/start → generation+1,校验累计指标不跨 generation。

依据

  1. Perfowl Gate F0 详细验证计划 v1 — F0-02 通过条件、证据层级与停止点。
  2. Gate F0 · B 批次连接冒烟结果 v1 — 当前 USB iOS 16 设备和 DVT 入口证据。
  3. PerformanceProbeFixture README — 可控场景、构建方式和测试约束。