Skip to content

Mobile Related FAQ

How to hide the powered by Regula watermark?

Trial license keys have the powered by Regula watermark by default. Please reach out to our Sales Team to discuss the presence of the watermark on the scanning screen.

Code signing "DocumentReader.framework" failed: iOS 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

How to remove unused language resources in Android?

If you are using a library that includes language resources, your APK includes all translated language strings for the messages in those libraries whether the rest of your app is translated to the same languages or not.

If you'd like to keep only the languages that your app officially supports, you can specify those languages using the resConfig property. Any resources for languages not specified are removed.

The following snippet shows how to limit your language resources to just English and Russian:

android {
    defaultConfig {
        ...
        resConfigs "en", "ru"
    }
}

Source: https://developer.android.com/studio/build/shrink-code#unused-alt-resources

Back to top