Skip to content

iOS

Code signing "DocumentReader.framework" failed: Troubleshooting

If the frameworks are integrated to the project manually, you may encounter the issue App Store Connect Operation Error. ERROR ITMS-90087: "Unsupported Architectures" / Code signing failed:

Our frameworks support two architectures for device deployment:

  • arm7, an older variation of the 32-bit ARM CPU, as used in the A5 and earlier.
  • arm64 is the current 64-bit ARM CPU architecture, as used since the iPhone 5S and later, the iPad Air, Air 2 and Pro, with the A7 and later chips.

i386 and x86_64 are used in Simulators.

Although all architectures are useful in some situations, when submitting an app to the App Store, you can only have arm7, and arm64 architectures. If you encounter the error "ERROR ITMS-90087: Unsupported Architectures" or "Code signing failed", it means that you're trying to submit a binary to the App Store, and that this binary has unsupported architectures inside. You have to remove the unsupported architectures (i386 and x86_64) from the binary you're submitting. There are several approaches which are listed below.

The first approach is to remove them manually. Open Terminal inside the framework directory and run the following commands:

lipo -remove i386 -output DocumentReader.framework/DocumentReader DocumentReader.framework/DocumentReader
lipo -remove x86_64 -output DocumentReader.framework/DocumentReader DocumentReader.framework/DocumentReader

The second approach is to run the embedded script (strip-unused-architectures-from-target.sh).

You can verify that the architectures are removed via lipo:

lipo -info DocumentReader.framework/DocumentReader