iosapp-thinning

Does iOS App Slicing remove unneeded parts of universal static libraries?


I have an iOS project that links to a universal static library (.a file), supporting both armv7 and arm64 architectures. When the app binary is sliced as part of App Thinning, does that process remove the unnecessary architectures from within the .a file? Or do I need to provide separate .a files for each architecture somehow to get this benefit in binary size (and if so, how do I do this)?


Solution

  • Thinning should only link required archs.

    From another static lib (includes link to Apple's doc on how to get App Thinning report):

    The IndoorAtlas iOS SDK is a static library compiled for multiple architectures. Only required architectures are linked to the Thinned application. You may test the thinning results locally with these instruction: Testing Your iOS App - "The App Thinning Size Report file contains a summary of the sizes of all variants and the app-thinning.plist file contains more details."

    Unlink the library, get baseline App Thinning Report. Link the library, get new report and compare them both.