Otukan identifies unauthorised changes to an iOS app by comparing the installed copy with the release you approved. At build time it records a fingerprint of protected code regions, the executable’s load commands, bundle resources and the signing identities you ship under. On the device, the app checks itself against that fingerprint at launch and before sensitive flows, and reports what changed to your backend. It covers the main executable, your own frameworks and the extensions you choose, on every channel you distribute through. Tampering stays possible for a patient attacker; Otukan makes it visible and costly to use.
Integrity checking across platforms is covered on mobile app anti tampering.
Binary, bundle and signature boundaries
A repackaged iOS app usually follows the same route: decrypt the App Store binary on a jailbroken device, edit it, add a library, then resign it with another certificate. Each step crosses a boundary Otukan watches.
| Boundary | Typical change | How Otukan notices |
|---|---|---|
| Executable code | Byte patches that skip a check or change a value | Protected regions no longer match build-time values |
| Load commands | A library added to the list the loader reads | An entry your release never contained |
| Encryption state | An App Store executable that has been decrypted | A decrypted binary where an encrypted one belongs |
| Signing identity | A different team or bundle identifier | No match with your approved list |
| Resources | Edited Info.plist, configuration or assets | Recorded state differs |
| Components | A replaced framework or extension | The component’s own record differs |
Code signing still does its job on a normal iPhone: it refuses code with an invalid signature. What it cannot tell is whether a valid signature belongs to you. Otukan fills that gap from inside the app.
Approved signing and distribution variants
Legitimate identities
A single app often ships through several channels, and each looks slightly different on the device:
- App Store and custom apps. Apple re-signs the build and delivers an encrypted executable under your team identifier.
- TestFlight. Apple signs and encrypts beta builds for your testers, again under your team identifier.
- Enterprise in-house. Signed with your enterprise certificate for your own staff.
- Ad hoc and development. Tied to registered devices and carrying a provisioning profile inside the bundle.
Otukan’s approved list names the team and bundle identifiers for every channel you use, including extensions with their own identifiers. A build signed under any other identity is treated as altered.
Keeping the list accurate
Certificates expire and teams change. When you add a channel or move to a new enterprise certificate, update the approved list in the same release. Acceptance on each channel confirms that a clean build raises nothing, so a routine renewal never turns into a false alarm for real users.
Tamper events and backend response
What the app does
Each flow applies the response you set: observe, warn, restrict or terminate. Many teams let an altered copy open but block sign-in, since that is where stolen sessions and fraud begin. Others choose observe for a first release, so they can measure how many altered copies exist before any user sees a change. Either way, the choice is yours per flow and can differ between a balance screen and a payment.
What your server receives
The event names the kind of change, such as code, load command, identity, resource or component, and travels with the next request. Your backend can refuse new tokens, block payments while keeping read-only access, or flag the account. Pairing the event with App Attest lets the server confirm the request comes from a genuine app instance. Attestation detail is covered on iOS app attestation.
Channel-by-channel acceptance
Each check is accepted with your engineers on physical devices. Build a lab-modified copy for each boundary and record the expected event, then install the approved build from each channel and confirm silence. Regression covers install, update from the previous release, sign-in and your most sensitive flow, with iOS versions, results and the reviewer recorded. Release guidance for protected iOS apps is in iOS app security guides.
Otukan’s full iOS offer is on iOS app security. For an outside view of your current App Store build, request a free App Exposure Check.