CNA-VGAP-008: Android and iOS have no device evidence at this snapshot: no Android workflow, iOS only in the Simulator, and lifecycle and packaged-content loading untested on a device

CNA snapshot 3b43bd86  ·  Known Issues › Verification gaps  ·  source links pinned to 3b43bd86

✓

Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 3b43bd86; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

Android has no preset or workflow; iOS evidence is device final-links plus a one-frame Simulator smoke on SOFTWARE, the SDL_GPU iOS legs are non-gating and never recorded as built, no physical device has run CNA, and no test loads packaged content on one.

Identifier
CNA-VGAP-008
Category
Verification gap
Subsystem
Platforms
Status
Open
Verified against
CNA 3b43bd86 (3b43bd8687ed46523d873f9bec4b32bd8481dcb5)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
Yes: see Current tests
Affected contract
Android and iOS as CNA targets (Game lifecycle, ContentManager with a relative root, TitleLocation)

Expected behaviour

A supported mobile target has at least one recorded device or emulator run of the snapshot covering startup, lifecycle transitions and content loading.

Actual behaviour at TARGET

No workflow or preset targets Android. Besides the July 2026 APK and emulator runs in devices-build.md, CNA's commit records describe manual Android-emulator runs with the House Simulator APK on 2026-09-29 and 2026-10-01 (BL-19: .cnb content loaded from the APK; BL-21: activation across Home and return; CBIND-139: models drawn whole), at revisions before b0e97bb1 and with no retained artifacts. apple-ci.yml final-links iOS device bundles and launches a smoke application for one frame in the simulator. Its gating legs build the SOFTWARE renderer; the SDL_GPU legs, the default Apple renderer, run with continue-on-error, and the workflow itself records that SDL_GPU has never been built for iOS by a recorded run. Only on SDL_GPU does the simulator leg also launch a pixel probe that draws a clear colour, a SpriteBatch quad and a BasicEffect triangle and requires the read-back pixels to match, so no gating leg reads back pixels on iOS. No physical-device run exists (CNA's own Apple qualification lists a physical iOS device as unmeasured), and ApplePlatform.cmake refuses tvOS, watchOS and visionOS. GameTest.MobileLifecycleEventsSuspendResumeAndTerminateTheLoop in GameTests.cpp scripts lifecycle events on the host platform; no device drives background, foreground, low memory or process recreation. apple_smoke.cpp loads no content, and nothing resolves an Apple bundle's Resources directory for ContentManager beyond TitleLocation's platform base path, which ContentManager consults for a relative root since CBIND-140 (9976f4909); no device or simulator run loads content through it.

Source locations

Evidence

Checked by reading at 3b43bd86; not executed.

Re-verified at c6dec91f: the two iOS renderers this entry named were retired on 2026-10-13 and 2026-10-14; the same commits (22842c107, 86b8152f2) moved apple-ci.yml's iOS legs to non-gating SDL_GPU and to gating SOFTWARE. The Android side is unchanged.

Duplicates in part CNA-VGAP-008 (Android compile-only evidence, verified-B10); the packaged-content half is the defect CNA-BUG-041 (verified-B3).

Independently observed as a separate finding (merged): The Devices demo's Gradle/NDK project (NDK 30.0.14904198, minSdk 24, arm64-v8a) is the only Android build definition; it sets CNA_BUILD_TESTS and CNA_BUILD_EXAMPLES OFF, and no CMake preset or workflow targets Android.

Independent re-verification: Checked by reading at 3b43bd86; not executed. The packaged-content half is the defect CNA-BUG-041. Independently observed as a separate finding (merged): The Devices demo's Gradle/NDK project (NDK 30.0.14904198, minSdk 24, arm64-v8a) is the only Android build definition; it sets CNA_BUILD_TESTS and CNA_BUILD_EXAMPLES OFF, and no CMake preset or workflow targets Android.

Re-verified at 3b43bd86: still no Android workflow or preset. The move to SDL 86296ac8 brought Android changes (an assets:// base path that Sdl3FileSystem::GetBasePath maps back to ./, and CNA's SDL patch 0004 for the enumeration of relative asset directories), and the commit that added the patch (8cef3c2d0) says an Android build has not been run with it. CNA's handoff records that Android was not rebuilt at the current FNA3D pin; at an earlier pin of the same day an Android x86_64 build compiled SDL with its patches and cna_platform but was not run. Not executed.

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

The portable lifecycle test above and the iOS simulator smoke launch on SOFTWARE (and, non-gating, on SDL_GPU with its pixel probe).

Regression test

An Android emulator job and an iOS simulator job that start a game, cycle background/foreground, and load an .xnb, a .cnb and a loose asset from the package.

Blast radius

Every mobile-specific path: lifecycle, orientation, packaged assets, sensors on hardware.

Workaround

No workaround is known.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.