I have an iOS app built with Expo that includes a WebView. I found that the WebView consistently fails to pass the Cloudflare Turnstile challenge, even though the same page works correctly in a normal browser.
To investigate this, I did not reuse or reproduce my existing app’s codebase. Instead, I asked VS Code to generate a brand-new Expo app from scratch and then gradually reduced it to the smallest possible setup needed to test Turnstile inside a WebView.
After several iterations, I eventually managed to get the Turnstile challenge to pass. Based on this experiment, I asked an AI to write a comprehensive README explaining the setup, the pitfalls, and the key findings.
You can find the test repository here:
Bonus note:
During this process, I tested VS Code Copilot (with Opus 4.5). The experience was not ideal: it defaulted to JavaScript instead of TypeScript and generated an unnecessary ./ios folder. For a simple WebView test, native iOS source code wasn’t required.
I tried Copilot mainly to see how much it has improved recently, but this experience was disappointing. For now, I’ll continue using Codex and Cursor, which better match my workflow.

