'App denied from AppStore - app signing issue (Expo & EAS)
I have an issue with the submission of my company's app to the Apple AppStore. We use the Expo framework to build an iOS/Android/web app.
Long story short: current app in production runs on SDK 41. Few weeks ago we decided to update to latest SDK (44) to catch by, and migrate at the same time to EAS (we were using expo build before that). After completing the upgrade locally and setting up EAS, we submitted to both the PlayStore and AppStore (using EAS submit), but the build was quickly denied by Apple for the following reason: the app crashes at launch on iPads running with iOS 15 (they did not provide much more information, apart from 3 crashlogs that I can post here if needed). As it was running fine locally on test iPhones and iPhone + iPads emulators, we tried installing the build directly to an iPad emulator and indeed the OS claimed that the app needs to be updated to run on the device.
Some research led us to this documentation by Apple that seems to be the reason for our issue. They suggest that the issue comes from obsolete certificates and/or provisioning profiles. The codesign utility does output a problematic config:
CodeDirectory v=20200 size=319374 flags=0x0(none) hashes=9971+7 location=embedded
Page size=4096
-7=5e84f9b7e1bbd20351910aee65c63173f67563d043d8ed6fe815a3d570d7389b
-6=0000000000000000000000000000000000000000000000000000000000000000
-5=3908adbad3c4ab66caba788223e65d88f2a124d0a2999db550eb79da179ad30f
-4=0000000000000000000000000000000000000000000000000000000000000000
-3=fc6312c7ae62346de99b8712c615136efdf60c99c563e149b2ebda2e606ebfa5
-2=e0c7f3ce4cdbd0036ff635b72093381bc6319996df33f92ad8099e97837aac48
As described in Apple's documentation above, our value of CodeDirectory (20200) is not sufficient for the app to run on iOS 15+ devices (need 20500+). However the DER entitlements seem to be up-to-date.
Now, we already spent ~3 working days trying to resolve this issue. Here is what we tried (nothing worked):
- Updated macOS to Monterey and xCode to v13.2.1
- Requested a fresh keychain certificate from Apple certificate authority
- Created fresh certificates and provisioning profiles of type "Apple Distribution" from developer.apple.com, downloaded them & uploaded them to EAS through eas credentials
- Created fresh certificate directly in xCode & uploaded it to EAS
- Letting EAS create new certificate & provisioning profile
- Re-signing our app (as suggested in Apple documentation above)
- Using a different iMac/MacBook
- Getting back to expo build:ios
- Asking for help on Expo's Discord server (twice but unfortunately, no one could help)
Versions used:
Expo: SDK 44 - managed workflow
Expo CLI: 5.3.0
EAS CLI: eas-cli/0.47.0
My team and I are desperate to find a solution to this issue, as it prevents us to be up-to-date regarding the SDK... Any help or research track would be welcome. Thank you!
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
