[build-tools] disable apsd in iOS simulator#3795
Conversation
904a337 to
396c400
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3795 +/- ##
==========================================
+ Coverage 57.32% 57.39% +0.08%
==========================================
Files 905 905
Lines 39314 39324 +10
Branches 8242 8242
==========================================
+ Hits 22532 22568 +36
+ Misses 15315 15291 -24
+ Partials 1467 1465 -2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
00dab2d to
a2225a0
Compare
|
✅ Thank you for adding the changelog entry! |
|
Subscribed to pull request
Generated by CodeMention |
sjchmiela
left a comment
There was a problem hiding this comment.
are we certain apsd absolutely does not work in simulators or is not needed? see https://exponent-internal.slack.com/archives/C01D24DMP98/p1778175913170849, https://developer.apple.com/forums/thread/795433?answerId=881732022#881732022
Thank you for the review and bubbling some of your the concerns @sjchmiela 🙏 APNS token registration in the simulator is bound to the host Mac (per the Xcode 14 release notes), and EAS workers aren't signed into any Apple ID, so apsd can't get a token regardless of the runtime. Measured through "no token found in keychain" ~130/min on iOS In the other hand, |
Why
apsd(the push daemon) can't get a push token in the Simulator — a fresh Simulator has no push identity — so it retries forever and floods the system log. That keepsdiagnosticdbusy for the whole life of the Simulator, eating about a CPU core. Simulators can't get real pushes anyway.Seen on Xcode 16.4, 26.2 and 26.4.
How
Disable
apsdas soon as the Simulator boots, before we wait for it to be ready:If it fails, we warn and keep going. Same for cloned Simulators.
Results
Idle Simulator, Xcode 26.4:
App launch time was the same either way (~210ms).
Test Plan
disableApsdAsync.yarn typecheck,oxlint, tests pass.Notes
Still not sure why iOS 26.0 didn't storm. There apsd connected once and went quiet, while 16.4, 26.2 and 26.4 all kept spamming — same missing token, same network. Haven't worked out what's different about 26.0.