The error code in the title of this page is a common Replit Agent failure mode and a common point of confusion: developers see ITMS-90078 and assume the issue is the app icon because the wording in their notes or in second-hand StackOverflow answers conflates 90078 with the missing-icon error 90704. Both errors arrive after the build is uploaded and both block forward progress, which is why the confusion repeats. This page sorts the two error codes, explains why Replit Agent triggers the push notification variant, and gives the two fixes that make the warning go away.
Short answer
ITMS-90078 is the Missing Push Notification Entitlement warning, not a missing-icon error. According to Apple's published documentation thread on ITMS-90078, the warning is triggered when the binary registers for remote notifications (typically via a third-party SDK in Replit Agent builds like Capacitor or Firebase) but the app's entitlements file does not include the aps-environment key. The fix is either to enable the Push Notifications capability and add the entitlement, or to remove the SDK call that registers for remote notifications.
What you should know
- ITMS-90078 is push notifications, not icons. The missing-icon error code is ITMS-90704.
- The warning is binary-level. Apple's validator inspects the compiled binary for the registration symbol and flags it independent of whether your code calls the feature.
- Replit Agent builds commonly bundle Capacitor, Firebase, or OneSignal. All three include push notification registration code by default.
- Two valid fixes exist. Either enable Push Notifications and add the entitlement, or remove the SDK that registers for them.
- It is a warning, not a hard rejection as of May 2026, but it should still be resolved before submission.
What does ITMS-90078 actually check for?
Apple's app validator inspects the compiled binary for a specific symbol: an implementation of UIApplicationDelegate.application(_:didRegisterForRemoteNotificationsWithDeviceToken:). If that method is implemented anywhere in the bundle, including inside any embedded framework, the validator records the binary as a push-notification-using app.
The validator then inspects the entitlements file (the .entitlements XML attached to the signed binary) for the key aps-environment. The value of that key should be either development (for development provisioning profiles) or production (for App Store builds).
When the registration symbol is present and the entitlement key is not, the validator emits ITMS-90078 as a warning. The wording in the email confirms the mismatch: "The app appears to register with the Apple Push Notification service, but the app signature's entitlements do not include the 'aps-environment' entitlement."
Why does Replit Agent specifically trigger this?
Replit Agent generates iOS apps through a Capacitor-based pipeline. The Capacitor stack is a hybrid framework that wraps web app code (HTML, JavaScript, CSS) into a native iOS shell. Capacitor's plugin library includes a push notification plugin (@capacitor/push-notifications) that is commonly added during scaffolding even when the app does not actually need notifications.
When the push notification plugin is in the project, the Xcode build links its Objective-C code into the binary. That code implements didRegisterForRemoteNotificationsWithDeviceToken because the plugin's design requires the method to forward token delivery to JavaScript. The validator sees the method, looks for the entitlement, does not find it, and issues the warning.
The same pattern repeats with Firebase Messaging (the FirebaseMessaging Pod implements the same delegate method) and with OneSignal. In every case, the SDK adds the symbol that the validator flags, regardless of whether your own code calls it. A Replit Agent build that includes any of these SDKs will produce ITMS-90078 unless the entitlement is added.
What is the missing-icon error developers actually mean?
The error code commonly conflated with ITMS-90078 is ITMS-90704, "Missing App Store Icon". The wording in the Apple email reads: "Your app is missing the App Store Icon required for iOS or iPadOS apps. Include a 1024x1024 pixel App Store Icon in PNG format inside the asset catalog."
The two are different problems with different fixes:
| Error code | Meaning | Cause | Fix |
|---|---|---|---|
| ITMS-90078 | Missing Push Notification Entitlement | Binary registers for remote notifications without the aps-environment entitlement | Enable Push Notifications capability OR remove the registration call |
| ITMS-90704 | Missing App Store Icon | The 1024x1024 App Store Icon is missing from the asset catalog | Add a 1024x1024 PNG App Store Icon to Assets.xcassets/AppIcon.appiconset |
| ITMS-90717 | Invalid App Store Icon (transparency) | Icon contains an alpha channel or transparency | Re-export the icon as a flat PNG without alpha |
| ITMS-90891 | Missing required icon | Missing a specific size icon for iPhone or iPad | Add the size listed in the email to the AppIcon set |
If the email you received says 90078, follow the push notification path below. If it says 90704, 90717, or 90891, the issue is the icon set in the Replit Agent project.
How do you fix ITMS-90078 if you do want push notifications?
Four steps, in order:
- Open the Apple Developer portal, go to Certificates, Identifiers and Profiles, then Identifiers. Find your App ID and enable the Push Notifications capability.
- Regenerate the provisioning profile (development and distribution). Apple's profile signing process updates the embedded entitlements automatically when a capability is enabled on the App ID.
- In the Replit Agent project, ensure the
aps-environmentkey is present in the .entitlements file with valuedevelopmentorproductiondepending on the build target. - Re-build the IPA and re-upload to App Store Connect. The warning should be gone on the new submission.
The Capacitor or Firebase push plugin can stay in the project; it now has the entitlement it needs. If your app actually uses push notifications, you also need a backend that sends the notification payloads via APNs and a way to collect the device tokens.
How do you fix ITMS-90078 if you do not want push notifications?
Three steps:
- Identify which SDK is registering for remote notifications. In a Capacitor project, the
@capacitor/push-notificationspackage is the usual cause. In a Firebase project, it isFirebaseMessaging(added either via Swift Package Manager or CocoaPods). - Remove the SDK from the project. For Capacitor, run
npm uninstall @capacitor/push-notificationsand thennpx cap sync ios. For Firebase, remove the Pod entry or the SPM dependency. - Re-build the IPA and re-upload. The push registration symbol is no longer in the binary, so the validator does not flag the missing entitlement.
The removal path is the simpler one for apps that do not use notifications. The capability path is the right one if push is a real product feature.
What to watch out for
Three details that recur on Replit Agent builds.
First, the warning email arrives separately from the build status. The build appears successful in App Store Connect, but the email lists the warning. Some developers miss the email and assume the build is clean; the warning still applies and should be resolved before submission.
Second, Replit Agent's build process sometimes regenerates the entitlements file from defaults on each build. If you add the aps-environment entitlement by hand to a file Replit owns, the next build can revert it. The correct fix is to enable the capability in the project's iOS configuration that Replit reads, not to edit the generated file directly.
Third, for security audits PTKD.com (https://ptkd.com) scans the resulting IPA for the actual capabilities the binary uses versus what the entitlements file declares. A mismatch is sometimes a sign of a deeper problem: a third-party SDK using a private API or a capability the team did not intend. The scan maps findings to OWASP MASVS-PLATFORM-1, which covers the platform's required entitlement model.
Key takeaways
- ITMS-90078 is push notifications, not icons. The icon error is ITMS-90704.
- The validator detects the push-registration symbol at the binary level; any bundled SDK with that symbol triggers the warning.
- Fix it by enabling Push Notifications and adding the aps-environment entitlement, or by removing the SDK that registers for them.
- For a complete pre-submission audit, PTKD.com (https://ptkd.com) checks declared vs used entitlements alongside credential scans.
- Document the entitlement decision in your CHANGELOG so the next Replit Agent rebuild does not silently reintroduce the warning.




