iOS FAQ

October 27, 2021 PWA Builder documentation

How can I tell if my PWA was launched from the iOS app?

At runtime, your PWA will have a app-platform cookie. This cookie’s value will be set to iOS App Store.

Can I publish to the App Store without a Mac?

No, not currently. You’ll need Xcode to build your project, which is only available on Mac.

In the near future, the PWABuilder team may automate the build process for you, in which case you’ll be able to submit the package to the App Store without a Mac. If this is important to you, please 👍 this issue.

In the meantime, there are 3rd party build services, such as AppVeyor or GitHub Actions with Xcode Archive, that can build Xcode projects as part of your continuous integration (CI) pipeline.

Additionally, there are inexpesive services, such as Macincloud, which let you remote into a Mac with Xcode already installed. You can use those services to build your PWA iOS app package.

What PWA features can I use on iOS?

Unlike Google Play and Microsoft Store, Apple’s App Store doesn’t natively support PWAs.

To bridge this gap, your PWA runs in a WKWebView hosted inside a native Swift app. Generally, features that work in iOS Safari will work in your PWA.

This includes service worker support.

Our PWA template currently does not support some PWA features like push notifications and app shortcuts.

We’d be glad to accept PRs to add PWA functionality. Our goal is to make this template as close to a full-featured PWA as possible.

To get a glimpse of general PWA support on iOS, we recommend Maximiliano Firtman’s posts on the subject.

Can I use Push Notifications?

We currently don’t support push notifications. We have partial support in the platform for enabling push notifications via Firebase, but the code is currently commented out, and PWABuilder has no UI for letting you input your push notification details.

If Push Notification support is important to you, upvote this issue.

How do updates work?

Since your PWA is being loaded in a web view, pushing changes to your web app will automatically be reflected in your iOS app. No App Store resubmission required.

If you need to make changes to the iOS app itself – for example, adding new iOS-specific capabilities, or otherwise modifying your app template – only then you’ll need to submit an update to your App Store listing.

Can I publish my PWA to the Mac Store?

Yes. While this template is designed for the iOS App Store, you can additionally publish to the Mac App Store.

In App Store Connect, choose your app. Then under Pricing & Availability, enable Make this app available for MacOS App Store:

image

Can I debug my PWA app on an iOS device?

You can open Safari Dev Tools while your PWA is running in your iPhone simulator.

  1. Open your .xcworkspace file in Xcode.
  2. Click ▶ to run your PWA inside the iPhone simulator.
  3. Open Safari
  4. In the top menu bar, choose Develop -> Simulator [device name] -> [Your PWA's URL]
    image
  5. Safari’s dev tools will open, allowing you to debug your PWA, execute arbitrary JS, set breakpoints, etc.

Can I customize my source code?

Yes, certainly. Open your project in Xcode and make your changes as usual.

Can I use iOS capability X?

Yes. To use iOS capabilities, such as Sign In with Apple, Apple Wallet, HealthKit, or other iOS-specific capabilities, you should specify those capabilities while creating your Bundle ID.

Then, make changes to the code to make use of that ability.

Are Push Notifications supported?

Not yet. We have plans to enable that in a future release if enough developers want this. If this issue is important to you, please 👍 this issue.

How is this different from the old PWABuilder iOS platform?

Some time ago, PWABuilder had an iOS platform based on the now-deprecated UIWebView. The template lacked a number of PWA integrations, and because it used deprecated technology, couldn’t take advantage of new WebKit capabilities, such as service worker support via App-Bound Domains.

This new template is a fresh take on a PWA iOS app using modern iOS technologies and integrating more PWA features where possible.

How is this different than Apache Cordova?

Apache Cordova is a broader platform that aims to expose native capabilities to your web app through a special runtime and plugins. For example, you might use Cordova to package your PWA, then make special calls from your PWA’s JavaScript to interact with native functionality.

PWA’s iOS platform is more narrow in scope, aiming to make your PWA run well, as-is, with as many PWA capabilities as we can build, on iOS. PWABuilder’s iOS platform is more like a polyfill for PWAs on iOS: giving you some PWA functionality where iOS is lacking. We make it easy to publish your PWA to the iOS App Store without any changes to your PWA code.

If Cordova’s broader approach is the right tool for your PWA on iOS, by all means use it.

Need more help?

If you’re stuck, the PWABuilder team would be glad to point you in the right direction. Open an issue and we’ll help walk you through it.


Posts you may like...

Back to Documentation Home

Categories