Android app ready? 5 things that break when you move it to iPhone
A lot of apps are finished on Android first and then get stuck at iOS. If the app is built in Flutter or React Native, the code is mostly the same, but Apple has its own rules and tools. Each one you miss can cost a rejection and another week of waiting. These are the five that catch people most.
1. Permission messages
On iPhone, every time your app asks for the camera, location, photos, microphone or contacts, it must show a message explaining why. These messages live in the iOS project settings. If one is missing, the app can crash when the permission is requested, and Apple will reject it. Write them in plain words, for example "We use your location to show nearby drivers."
2. Push notifications need an Apple key
Notifications that work on Android stay silent on iPhone until Apple Push Notification service is set up. That means creating an APNs key in your Apple developer account, adding it to Firebase or your push provider, and enabling push and background modes in the iOS project. Then test on a real iPhone, because the simulator does not show everything.
3. Background location is stricter
Driver, delivery and field apps often track location in the background. Apple reviews this closely. You need the right permission messages, the background location mode switched on, and a clear reason that the reviewer can see in the app. If location is not truly needed in the background, ask only while the app is open.
4. Google or Facebook login means adding a privacy-friendly option
If your app lets people sign in with Google or Facebook, Apple expects you to also offer a login option that limits the data collected, and Sign in with Apple is the simplest way to meet that rule. It takes a little setup in the Apple developer account and your backend, so plan for it early.
5. A Mac, an Apple developer account and TestFlight
iOS builds must be made on a Mac with Xcode. Publishing needs an Apple Developer Program account in your name or your company's name, which costs $99 a year. Before launch, you share test builds with TestFlight. External testers can only join after a short beta review by Apple, so leave a day or two for that.
A simple checklist
- Register the Apple developer account early, because company accounts can take a few days to verify.
- Agree the bundle ID and app name.
- Add permission messages, push, background modes and Sign in with Apple if needed.
- Test on real iPhones, including a small one.
- Upload to TestFlight, fix what testers find, then submit for review.