I set up an application/web server that is building and providing Apple Wallet passes.
The same application is responsible for updates.
Actually, it is setup as described in the Apple documentation, I’ve got a web server that can handle the registration requests from the installed card with the device id and the same application is triggering the Apple APNs in case of updates.
Everything is working as expected as long as the iPhone is connected to a wifi: the device registration works, deleting works and updates work as well including notifications.
As soon as iPhone is using mobile data (5G or so), it doesn’t send any requests. It doesn’t send the registration, in case it was already registered, it doesn’t send the delete request if I am deleting the card and, in case the device was already registered it is not getting any updates.
As soon as the iPhone is not connected to a wifi, I don’t see any requests to the web server from the pass/device at all.
Is that per design? Does the entire card to server communication only work when the iPhone is connected to a wifi?
I observed that when I add a new card while using mobile data (no wifi), the registration is not triggered. When I connect the iPhone to the wifi it does NOT automatically send the request. But, when I use the toggle to deactivate automated updates and then activate it again, the card is sending the registration request.
This would mean, the entire update thing would only work if the pass will be installed while the iPhone is connected to a wifi.
Is there something I have to add to the pass.json so that the registration, delete and update requests are working on mobile data as well?
Since it is working while the iPhone is connected to the wifi, I don’t think it is an issue with the webServiceURL
or authenticationToken
. These values are there and correct.