App Slicing and Bitcode relationship

Hi,


As far as I know, App Slicing has two major parts of functionality:

1. slice the resource so that only the certain suitable resources are downloaded for a specific device, for example, iPhone 5 only downloads @2x images and will not download @3x images.

2. slice the binary code, that is the app store will compile your submission packages, and your specific only download the suitable codes, for example, iPhone 5 will only download the binary with Armv7 codes and iPhone6 will download hte binary with Arm64 codes.


My question is:

1. we have to set the bitcode enable to YES to activate the 2nd app slicing functionality, that is slice the binary code.

2. If not, is slicing the codes automatically done when we submit the archive to the App Store now without any further setting or operation? Or you have to set the deployment target to 9.0 or later?


Can anyone confirm that please? Thanks.

Answered by bubble in 64118022

1. Nothing in the documentation indicates that Bitcode is related to Slicing

2. Nothing in the documentation indicates that anything needs to be explicitly done by the developer for executable slicing

Accepted Answer

1. Nothing in the documentation indicates that Bitcode is related to Slicing

2. Nothing in the documentation indicates that anything needs to be explicitly done by the developer for executable slicing

There is a lot of misconception on this topic, and unfortunately no clear answer from Apple by now.

  • App Thinning chapter of App distribution guide says the following: "Slicing is the process of creating and delivering variants of the app bundle for different target devices. A variant contains only the executable architecture and resources that are needed for the target device."
  • And "New features in Xcode 7" exactly the opposite:
    "Bitcode. When you archive for submission to the App Store, Xcode compiles your app into an intermediate representation. The App Store then compiles the bitcode down into the 64- or 32-bit executables as necessary.Slicing. Your artwork incorporated into the asset catalog can be tagged to indicate its suitability for the device that is targeted for installation when a user purchases and downloads your app into his or her device. Xcode supports organizing and tagging in the asset catalog so that the App Store can perform the slicing operation automatically. End users get just the resources needed for their device."

I've submitted a radar, asking to clarify these things: rdar://30011601

App Slicing and Bitcode relationship
 
 
Q