Usage

In-App Protection Shielder for Apple is a command-line tool. It requires:

  • an iOS application to be shielded (.ipa or .app),
  • the runtime SDK (IAPShielderRuntime.xcframework).

Optionally:

  • a configuration YAML file (without it, all features are enabled),
  • a signing configuration YAML file.

The output of the Shielder is a shielded .ipa file. If the output file already exists, it is overwritten. The input application is not modified. The Shielder exits with a non-zero exit code when processing fails.

The Shielder modifies the application, so the original signature is no longer valid. The shielded application has to be signed, either by the Shielder or afterwards. See Signing.

Applications downloaded from the App Store are encrypted and cannot be shielded. Use the build exported from Xcode or your build system.

Running the Shielder

iap-shielder protect [OPTIONS] <input-application>

Adding --dry-run validates the configuration and prints the shielding plan without writing any output.

Example

iap-shielder protect \
  --config config.yml \
  --signing-config signing.yml \
  --output App-shielded.ipa \
  App.ipa

Shielding without signing, for signing afterwards:

iap-shielder protect \
  --config config.yml \
  --defer-signing \
  --output App-shielded.ipa \
  App.ipa

where:

  • App.ipa - input application,
  • config.yml - configuration file, including the path to the runtime SDK, see Configuration,
  • signing.yml - signing configuration file, see Signing,
  • App-shielded.ipa - shielded output application. It must be different from the input file.

App Store Privacy Manifest

The runtime SDK contains its own privacy manifest (PrivacyInfo.xcprivacy), which is added to the shielded application together with the runtime SDK. Your application’s privacy manifest does not need any changes.

The runtime SDK does not track users and does not collect any data. It declares the following required reason APIs:

API Category Reason
NSPrivacyAccessedAPICategorySystemBootTime 35F9.1
NSPrivacyAccessedAPICategoryFileTimestamp C617.1
Last updated on Oct 29, 2026 (16:04) View product

1.0.x

In-App Protection Shielder for Apple