ERROR ITMS-90087: "Unsupported Architectures. The executable for MicroBlink.framework contains unsupported architectures '[x86_64, i386]'."
Apple will stop supporting Apps which have only 32-bit architecture. In other words, apps need to have 64-bit slices. Our framework actually has:
- arm7 32 bit - for iPhone 4 and 4s
- arm7s 32 bit - for iPhone 5
- arm64 54 bit - for iPhone 5S and newer
- x86 - for simulator
- x86_64 for the 64-bit simulator.
Find more information here.
All the slices are useful. 32-bit slices allow native support for devices older than iPhone 5S. x86 slices are useful for running and debugging your app in the simulator.
You can extract them with lipo command:
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH
Although all slices are useful in some situations, when submitting an app to the App Store, you can only have arm7, arm7s, and arm64 slices. If you see the error "ERROR ITMS-90087: Unsupported Architectures.", this means you're trying to submit a binary to the App Store, and that this binary has unsupported slices inside.
You'll need to remove the x84 and x86_64 slices from the binary you're submitting. The best approach for this, by far, is to use the advice from this post.