Can headless Chrome or Chromium be used on iOS devices?

Hey folks, I’m trying to figure out if it’s possible to use a headless Chrome or Chromium browser on iOS or in a React Native app. My main goal is to get Puppeteer working on iOS.

I’ve been trying to use a Node.js library that needs Puppeteer in my iOS app, but it’s not working out. I think Puppeteer isn’t supported on iOS. I even tried using nodejs-mobile with React Native, but no luck there either.

I know I could set up a separate Node.js server and make an API, but I really want to keep everything inside the iOS app itself. No external servers if possible.

Has anyone managed to do something like this? Or do you know of any workarounds? I’d love to hear your thoughts or experiences. Thanks a bunch!

Nah, headless Chrome on iOS ain’t happening mate. apple’s rules are tight. tried something similar and hit a wall. maybe look into wkwebview? not as powerful but it’s something. or split ur app - do basic stuff in ios and heavy lifting on a server. not ideal but beats banging ur head against apple’s restrictions

As someone who’s worked extensively with iOS development, I can confidently say that using headless Chrome or Chromium on iOS is not feasible. Apple’s stringent policies regarding browser engines effectively prevent this approach.

Instead, consider leveraging WebKit, the rendering engine Apple allows on iOS. While it’s not as flexible as Puppeteer, you can achieve many similar functionalities using WKWebView in your React Native app.

For more complex operations, you might need to implement a hybrid solution. This could involve using a WebView for basic tasks and a lightweight API server for heavier processing. This approach maintains most functionality within the app while adhering to iOS guidelines.

Remember, working within platform constraints often leads to more stable, performant solutions in the long run.

I’ve been down this road before, and unfortunately, running headless Chrome or Chromium on iOS is pretty much a no-go. Apple’s strict policies on browser engines make it nearly impossible. I tried a similar approach for a project last year and hit the same wall.

Instead of banging your head against iOS limitations, I’d suggest rethinking your architecture. One approach that worked for me was to use a lightweight WebView within the app for basic rendering, then offload the heavy lifting to a small backend service. It’s not ideal, but it gets the job done without violating App Store rules.

Another option is to look into using something like Capacitor or Ionic, which can give you more control over the web view. They’re not exactly Puppeteer, but they might offer enough functionality for your needs while staying within iOS constraints.

Remember, sometimes it’s better to work with the platform’s limitations rather than against them. Good luck with your project!