Repository navigation
fix(ios): unblock iOS E2E on Xcode 27 / iOS 27 and any checkout path - #1096
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Collaborator
Author
Collaborator
Author
React Native 0.81 bundles fmt 11.0.2, whose consteval format checks fail under Xcode 27.2's clang when the pod is forced to C++20.
iOS 27 terminates apps without a scene manifest (UIApplicationEvaluateRuntimeIssueForNoSceneLifecycleAdoption). The React Native root now starts from a SceneDelegate.
On iOS 27 the accessibility tree exposes a non-interactive full-screen toolbar above the tab content, so agent-device refuses the semantic press. A real tap at the button frame works.
boorad
force-pushed
the
fix/podspec-path-independent-checksum
branch
from
November 10, 2026 02:06
bf0c0dd to
f30e0f0
Compare
Collaborator
Author
|
Source: Worker-reported; the verifier checks the signature and source bindings, not whether commands ran. Coverage: 2/2 checks reported; 7 omissions. Coverage omissions (7)
Source and environment
Command results
Signed machine-readable evidenceThe exact signed bytes are preserved below for verification and audit tooling. |
Collaborator
Author
Local device E2E evidence
The hashes above are present in command stdout committed by the signed attestation. Images expire after 30 days; the hashes remain the durable binding. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Summary
Unblocks iOS E2E (and therefore
agentscm/local-validationattestations) from any checkout path and on Xcode 27 / iOS 27.Path-dependent podspec checksum.
QuickCrypto.podspecbaked absolute__dir__paths (OpenSSL force-include prefix header, OpenSSL include, libsodium include) intopod_target_xcconfig. CocoaPods hashes the evaluated spec, soexample/ios/Podfile.lock'sQuickCryptochecksum matched only the directory that generated it (chore(deps): upgrade MMKV with aligned native dependencies #1057 was qualified from a T3 worktree). The runner'spod install --deploymentthen failed everywhere else. The real paths are now expressed relative to$(PODS_ROOT), keeping the symlink-safe real-path behaviour for monorepo stores.Xcode 27 + fmt. React Native 0.81 bundles fmt 11.0.2, whose
constevalformat checks fail under Xcode 27.2's clang when the example forces C++20 on every pod. The examplePodfilecompiles only thefmttarget as C++17 (example-only; remove once the example reaches RN 0.84+/fmt 12).iOS 27 UIScene requirement. iOS 27 terminates apps without a scene manifest (
UIApplicationEvaluateRuntimeIssueForNoSceneLifecycleAdoption); the example app crashed at launch on the runner's newest (27.2) simulator. The example now starts React Native from aSceneDelegate.iOS 27 accessibility overlay. On iOS 27 the accessibility tree reports a non-interactive full-screen
Toolbarabove the tab content, soagent-devicerefuses the semantic press on Run All (interactionBlocked: covered). A real tap works, so the runner taps the button's frame center when it is reported covered.Changes
QuickCrypto.podspec:pods_relativehelper (realpath of the sandbox, or of its parent on a first install; falls back to the absolute path outside CocoaPods); comment updates.example/ios/Podfile:fmt→ C++17 inpost_install.example/ios/Podfile.lock:QuickCryptospec checksum andPODFILE CHECKSUMonly.example/ios/QuickCryptoExample/AppDelegate.swift,Info.plist:SceneDelegate+UIApplicationSceneManifest(keepsAppDelegate.windowset; LogBox and DeviceInfo read it).example/test/e2e/runner.mjs: frame-center tap fallback for a covered Run All button.Testing
35efd7b5—bundle exec pod install --project-directory=ios --deploymentsucceeds from~/dev/rnqc/exampleand from a temporary worktree at a different path; generated xcconfig paths resolve ($(PODS_ROOT)/../../../packages/react-native-quick-crypto/ios/openssl/...) — macOS.2b90bee5—xcodebuildwith the E2E runner's arguments (Debug, iphonesimulator,-derivedDataPath ios/build) — BUILD SUCCEEDED — Xcode 27.2.2056238a—--deploymentinstall passes after the review fix.Podsdir) and one comment nit, both fixed in2056238a; three Info items skipped (bare ENOENT on a partial OpenSSL extract, fmt override lifetime,pod lib lintsandbox caching — RNQC doesn't lint/trunk this podspec).20a00cf3— iOS 27.2 simulator launch: no scene trap, React Native renders. Independent review of the UIScene commit: no fixes; deep-link forwarding / silent guard / window retention skipped.f30e0f09(rebased ontomainafter fix(ci): point local-validation verifier at renamed agentscm/agentscm #1097) — signed AgentSCM attestation7185a25b…: iOS (27.2 sim, Xcode 27.2) 41 suites / 2208 tests / 0 failures; Android 41 suites / 2208 tests / 0 failures. Attestation and both screenshots posted on this head;agentscm/local-validationsuccess. This is worker-asserted evidence (seedocs/local-e2e.md), not GitHub-run mobile testing.Delivery
The podspec change reaches consumers in the next npm release: their
pod installemits$(PODS_ROOT)-relative include paths instead of absolute ones (no behavior change for the build). The fmt, UIScene, and runner changes are example/test-only.Unblocks #1095.
🤖 Generated with Claude Code