Need help?

Please type a word or phrase into the box below to search all our FAQ and support articles.

iOS: ERROR ITMS-90087: Unsupported Architectures.



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:


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.

Was this article helpful?
1 out of 1 found this helpful
Have more questions? Submit a request


  • Avatar
    Kent Johnson

    it should be lipo -remove instead of lipo -extract

    Also note that lipo -remove has to be done once for each architecture to remove. lipo does not modify the input file, it only produces a file so you have to run lipo -remove once for x86_64 and i386.

    $ cd plugins/com.microblink.BlinkIdScanner/src/ios/blinkid-ios/Microblink.framework
    $ mv MicroBlink MicroBlink_all_archs
    $ lipo -remove x86_64 MicroBlink_all_archs -o MicroBlink_some_archs
    $ lipo -remove i386 MicroBlink_some_archs -o MicroBlink
    $ rm MicroBlink_all_archs MicroBlink_some_archs