DEV Community

Cover image for Day 92: Moving to iOS and the Apple Push Notification roadblock
Eric Rodríguez
Eric Rodríguez

Posted on

Day 92: Moving to iOS and the Apple Push Notification roadblock

Taking a cloud-native web app to mobile introduces a whole new set of architectural challenges.

Today, I wrapped my React SPA into a native iOS app using Capacitor. The goal was to maintain a single codebase communicating with my AWS Lambda backend while gaining access to native device features.

The Auth Fix: Deep Links
Authentication is notoriously tricky when moving from Web to Mobile. I use AWS Cognito for OAuth (Google Sign-In). On mobile, when the browser finishes the auth flow, it needs to know how to return to the app.

I had to configure the iOS App.xcworkspace to accept custom URL schemes and update my Cognito App Client to accept duromoney://localhost as a valid callback URL. Without this, users log in and get stuck staring at a blank Safari screen.

The FinOps Dilemma: SMS vs. Push
Right now, my AI agent sends "High Spending" alerts via SMS using Amazon SNS. SMS costs money. Push notifications don't.

I wrote the backend logic to register the device token and push alerts via APNs (Apple Push Notification service) alongside the SMS so I could compare latency.

The Roadblock
I hit a hard wall. Xcode refused to build, throwing:
Personal development teams do not support the Push Notifications capability.

AWS lets you build multi-region serverless architectures for pennies. Apple won't even let you send a local test Push Notification to your own device unless you pay the $99/year Apple Developer Program fee.

The Fix for Now: I'm keeping the SMS fallback active. Once the paid Apple Developer account is active, I will extract the .p8 Auth Key, Team ID, and Bundle ID to create an APNS_SANDBOX Platform Application in AWS SNS and finally bypass the SMS costs.

Cloud providers give you the tools. Mobile platforms sell you the keys!

Top comments (0)