Follow-up, for the record: we fixed this on our side and the crash is gone.
The variable turned out to be the arm64e slice. The three facebook-ios-sdk frameworks
(FBSDKCoreKit, FBSDKCoreKit_Basics, FBAEMKit) are shipped fat (arm64 + arm64e) since
18.1.0, and they were the only two-slice binaries in our bundle. Our main executable is
arm64, so that slice was never executed on any device — but once Apple's processing changed
(the DTAppStoreToolsBuild 27A261 builds), iOS 18's delta-update path could no longer
decrypt those frameworks, while a fresh install and iOS 26 were fine.
The fix: a Run Script phase after "Thin Binary" that runs lipo -thin arm64 on every
embedded framework/dylib that carries a second slice and re-signs it, plus a check that
fails the build (and the upload) if anything under Frameworks/ or PlugIns/ is not
arm64-only. Nothing else in the bundle changed.
So if you are hitting this: check lipo -info on every embedded framework in the delivered
app; a second slice next to arm64 is the thing to remove. (Same finding as
facebook-ios-sdk#3997.)
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags: