Our iOS app bundle size is more than doubled in the AppStore compared to what we presented

Our .ipa file provided by Apple is only about 40MB, but the apps shown in the store are over 90MB in size. After downloading our ipa file from iTunes, we found that the reason. This is because our executable binary (92MB uncompressed) is encrypted by Apple and doesn't compress very much. It can be compressed up to 85 MB. But it can be compressed up to 35MB before being sent to apple.

Obviously we are not alone, as I have seen some other discussion on this issue for a long time.

http://www.reigndesign.com/blog/why-is-our-app-twice-as-large-as-what-we-submitted-contagious-zeros/

However, we found that in fact the Facebook app and Facebook Messenger are probably not encrypted by Apple in some way. See the lines we dump from their binaries. Obviously, many of their strings, method name, class name, etc. Not encrypted. So their binary can be compressed up to ~ 60%. On the other hand, in our application from the appstore, we are unlikely to find readable C string literals, method name, class name, etc.

My question is, is there a way (in whole or in part) to turn off Apple's binary encryption so that we can keep our original packet size?

Some lines of FB messenger executable downloaded from iTunes:

@"FBVSPDeltaNewTransfer"
@"FBVSPDeltaTransferStatus"
@"FBVSPDeltaPaymentMethodUpdated"
@"FBVSPDeltaPaymentMethodRemoved"
@"FBVSPDeltaPaymentMethodPrimary"
@"FBVSPDeltaPinCode"
@"FBVSPDeltaPaymentNoOp"
@"FBVSPDeltaPaymentForcedFetch"
@"FBVSPDeltaPaymentEnable"
@56@0:8@16q24q32@40@48
@"<MNSyncProtocolPluginService>"
@"FBPaymentsPeerToPeerSPSnapshotController"
@"FBPaymentsPeerToPeerSPSequenceIdProvider"
@"FBPaymentsPeerToPeerSPSyncTokenProvider"
@"FBPaymentsPeerToPeerSPErrorCodeProvider"
@"FBPaymentsPeerToPeerSPDeltaHandlerMap"
@"FBPaymentsPeerToPeerSPPayloadHandler"
@"NSString"24@0:8@16

      

+3


source to share





All Articles