> ⚠️ 全项目最复杂 Phase。**详细实施计划（含每步真实代码）见 [`docs/superpowers/plans/2026-06-11-phase-2e-native.md`](../../../docs/superpowers/plans/2026-06-11-phase-2e-native.md)**——apply 以该计划为准。下面是勾选索引。
>
> 🔑 **核心设计澄清（计划里详述）**：RN 自渲染**不照搬 Flutter SelfRenderViewUtil 的"原生重建"**。RN 是：RN 渲染 title/icon/cta → findNodeHandle 得 viewTag → 桥内 `resolveView(tag)` 取 RN 渲染好的 view → `nativePrepareInfo.setTitleView(view)` 绑定。Task 5 写**新 NativePrepareBinder**（不移植 ViewInfo 重建）。viewTag 解析（New Arch resolveView）是最不确定处，apply 必迭代，已留容器级点击退化方案。

## 0. 依赖 / 测试位

- [x] 0.1 Native API 编译确认在 core-taku:6.5.73.3；缺则 example 加 nativead-taku 模块
- [x] 0.2 example/src/config/sdkConfig.ts 加 native 位：从 placementId-china-inner.json 的 `native-selfrender`/`native-express` 段取 ADX 位

## 1. L2 spec

- [x] 1.1 Fabric 组件 spec `src/specs/ATNativeAdViewNativeComponent.ts`（codegenNativeComponent('ATNativeAdView')；props placementID/sceneID/isAdaptiveHeight/adWidth/adHeight；复用深路径 shim）
- [x] 1.2 `NativeATBridge.ts` 加命令式：loadNativeAd/getNativeAd(Promise<Object|null>)/prepareNativeAd/renderNativeAdContainer/checkNativeLoadStatus(Promise)/getNativeValidAds(Promise)/getNativeAdMaterial(Promise)/entryNativeScenario/setNativeLocalExtra/setNativeTKExtra/destroyNativeAd

## 2. 常量 / 类型

- [x] 2.1 `Const.ts` 补 `NativeCallback` 16 个（含 video Start/End/Progress + TapClose）；index 导出
- [x] 2.2 sync-const-check 通过
- [x] 2.3 `src/types` 加 `ATNativePrepareInfo`（§17.4.6：appIcon/mainImage/title/desc/adLogo/cta/dislike/parent/elementsView/customView/isAdaptiveHeight；元素值=viewTag）+ `ATAdMaterial`

## 3. L1 TypeScript（两类 + 组件）

- [x] 3.1 `src/nativead/ATNative.ts`（加载器，§4.10）：makeAdRequest(adRequest?)/getNativeAd(showConfig?):Promise<NativeAd|null>/checkAdStatus():Promise/checkValidAdCaches():Promise/setLocalExtra/setTKExtra/static entryAdScenario(...tkExtra?)/setAdListener/setAdMultipleLoadedListener/setAdSourceStatusListener（实例内按 callbackName 分流）
- [x] 3.2 `src/nativead/NativeAd.ts`（已加载）：prepare(prepareInfo)/renderAdContainer(containerRef, prepareInfo)（findNodeHandle→viewTag）/setNativeEventListener/setAdRevenueListener/getAdMaterial():Promise/getAdInfo():Promise/destroy
- [x] 3.3 `src/nativead/ATNativeAdView.tsx`（Fabric 封装）：props 透传 + 事件走 NativeCall 按 placementID 过滤
- [x] 3.4 `src/index.tsx` 导出 ATNative/NativeAd/ATNativeAdView/ATNativePrepareInfo/NativeCallback

## 4. L3 Android — Native（含 Fabric + 自渲染绑定）

- [x] 4.1 移植 `ATAdNativeManger→ATNativeManager`（ConcurrentHashMap<pid,Helper> + load/getNativeAd/checkAdStatus/validAds Promise + setLocalExtra/setTKExtra + entryScenario + destroy），包名 `com.anythink.reactnative.nativead`
- [x] 4.2 移植 `ATNativeHelper`（持 ATNative loader + NativeAd + Listener；回调 emit NativeCall：load/show/click/close/video Start·End·Progress/deeplink/下载确认/AdSource 6/MultipleLoaded）
- [x] 4.3 移植 `SelfRenderViewUtil` + `ViewInfo`（elementsView/标准元素 viewTag → UIManager.resolveView 取 RN view → 组装原生 ATNativePrepareInfo 注册给 NativeAd）
- [x] 4.4 **Fabric `ATNativeAdViewManager`**（照 ATBannerViewManager）：三层结构 + **容器 requestLayout 强制 measure/layout** + props 延迟 init + dp→px + onDropViewInstance→destroy
- [x] 4.5 prepareNativeAd/renderNativeAdContainer 桥方法：UI 线程 resolveView(viewTag) + SelfRenderViewUtil 绑定
- [x] 4.6 注册 ATNativeAdViewManager 到 ATReactNativePackage.createViewManagers；命令式桥路由到 ATNativeManager（未 init→reject SDK_NOT_INITIALIZED）

## 5. L3 iOS（stub）

- [x] 5.1 native ViewManager + view stub + 命令式 stub + NSLog；prepareInfo 双端兼容（iOS 无 elementsView，忽略）；线程守护

## 6. Example（双入口）

- [ ] 6.1 自渲染入口：RN 拼 title/icon/mainImage/cta 布局 + ref → prepareInfo → prepare/renderAdContainer
- [x] 6.2 模板入口：`<ATNativeAdView>` 直接展示
- [x] 6.3 Home 加两个入口按钮

## 7. 单测

- [x] 7.1 `ATNative.test.tsx`：① makeAdRequest/getNativeAd dispatch ② prepareInfo 解析 fixture（viewTag/elementsView 透传正确，N-Q01）③ 组件 props 映射
- [x] 7.2 Event 分发：mock NativeCall → 对应 placement 回调（含 video）

## 8. 验证（你本机编译 + 对拍）

- [x] 8.1 Android：清缓存 + `yarn example android` 编译绿（codegen 生成 ATNativeAdView 组件）；自渲染入口展示
- [ ] 8.2 自渲染点击/曝光生效（N-F02）；模板展示（N-F03）；video 回调；deeplink/下载确认（N-F05/F06）
- [ ] 8.3 列表多 item 不串（N-F07）；prepareInfo key 对齐 §17（N-F04）
- [ ] 8.4 iOS：pod install + `yarn example ios` 编译过、NSLog 路由可见
- [x] 8.5 jest 单测过；tsc/prettier/sync-const-check 绿
- [x] 8.6 对照验收 §九 N-F/D/Q/C 逐条；更新实施规范 §十二 Phase 2-E → ✅
