iOS
DexProtecting iOS Frameworks and XCFrameworks
Frameworks
This section offers guidance on protecting Frameworks and XCFrameworks independently. It is therefore intended primarily for developers who ship SDKs. If you are interested in protecting Frameworks already integrated in an application package, please see the general guidance on configuring DexProtector.
DexProtector applies the same protection mechanisms for Frameworks as for IPAs, and configuration is the same, but there is a crucial difference in the protection process:
DexProtector accepts as an input a folder (via DexProtector Studio: a .zip archive) containing one or several .framework files.
DexProtector will protect all Framework(s) within that folder, and output a folder (or, via DexProtector Studio, a .zip archive) containing the protected Framework(s) and a uniquely generated companion Framework containing the DexProtector runtime engines necessary to support the specific protected Framework(s).
The protected and companion Frameworks within this bundle are interdependent, and must be implemented together, otherwise they will be inoperable.
To protect a Framework via DexProtector Studio, therefore, the steps are as follows:
Compress the Framework you wish to protect into a .zip archive
Load the .zip archive along with your reference configuration in DexProtector Studio
Adjust your configuration as required
Run protection
DexProtector Studio will output a .zip archive containing the protected Framework and the companion Framework containing the runtime engines that manage decryption and RASP
Implement the protected Framework and the DexProtector companion Framework in your application project
XCFrameworks
This section offers guidance on protecting Frameworks and XCFrameworks independently. It is therefore intended primarily for developers who ship SDKs. If you are interested in protecting Frameworks already integrated in an application package, please see the general guidance on configuring DexProtector.
Here are the details on how to process .xcframework archives for protection:
DexProtecting .xcframeworks
DexProtector accepts as an input a folder containing one or several .xcframework archives. For example, to protect the contents of a single .xcframework, create a folder such as the following:
MyProject
│
├── MyFramework.xcframework
│ ├── Info.plist
│ ├── ios-arm64
│ │ ├── MyFramework.framework
│ │ │ ├── Headers
│ │ │ ├── Modules
│ │ │ ├── Resources
│ │ │ └── MyFramework (binary file for ARM64)
│ │ └── Info.plist
│ ├── ios-arm64_x86_64-simulator
│ │ ├── MyFramework.framework
│ │ │ ├── Headers
│ │ │ ├── Modules
│ │ │ ├── Resources
│ │ │ ├── MyFramework (binary file for ARM64 and x86_64 simulators)
│ │ │ └── Info.plist
│ └── ...
└──
Executing protection on this .xcframework will then look like this:
java -cp dexprotector.jar com.licel.dexprotector.ios.ConsoleTask -configFile dexprotector.xml MyProject ProtectedMyProject
DexProtector will process all Frameworks within that folder, protect all ARM64 binaries, and skip all other binaries. It will also generate a unique Companion .xcframework containing the DexProtector runtime engines (for decryption and RASP) necessary to support the specific protected Framework(s). You can also optionally specify the name of the Companion Framework in your DexProtector configuration, for example:
<ios companionFrameworkName="ProtectionModule" ....> </ios>
In which case the output ProtectedMyProject folder will look like this:
ProtectedMyProject
│
├── MyFramework.xcframework
│ ├── Info.plist
│ ├── ios-arm64
│ │ ├── MyFramework.framework
│ │ │ ├── Headers
│ │ │ ├── Modules
│ │ │ ├── Resources
│ │ │ └── MyFramework (protected binary file for ARM64)
│ │ └── Info.plist
│ ├── ios-arm64_x86_64-simulator
│ │ ├── MyFramework.framework
│ │ │ ├── Headers
│ │ │ ├── Modules
│ │ │ ├── Resources
│ │ │ ├── MyFramework (binary file for ARM64 and x86_64 simulators; only ARM64 binaries are protected)
│ │ │ └── Info.plist
│ └── ...
├── ProtectionModule.xcframework
│ ├── Info.plist
│ ├── ios-arm64
│ │ ├── ProtectionModule.framework
│ │ │ ├── Info.plist
│ │ │ └── ProtectionModule (companion binary file for ARM64)
│ ├── ios-arm64-simulator
│ │ ├── ProtectionModule.framework
│ │ │ ├── Info.plist
│ │ │ └── ProtectionModule (companion binary file for ARM64 simulator)
Each protected Framework must always be implemented in an app project together with the corresponding Companion Framework, otherwise they will be inoperable.
Note 1: DexProtector supports protection of ARM64 binaries only, for both hardware devices and simulators. Binaries targeted to other architectures will be skipped.
Note 2: DexProtector currently supports protection of .xcframework archives only via the command line, and not via DexProtector Studio.
-
1. What is DexProtector?
Introduction to DexProtector > 1. What is DexProtector? -
2. The DexProtector process
Introduction to DexProtector > 2. The DexProtector process -
3. DexProtector Studio
Introduction to DexProtector > 3. DexProtector Studio -
4. Alice - Licel’s Attack Telemetry and Threat Intelligence System
Introduction to DexProtector > 4. Alice - Licel’s Attack Telemetry and Threat Intelligence System -
Overview
DexProtector for iOS > Overview -
1. Download
Getting started > 1. Download -
2. Activate
Getting started > 2. Activate -
Activate via CLI (online)
Getting started > Activate via CLI (online) -
Activate via CLI (offline)
Getting started > Activate via CLI (offline) -
Activate via DexProtector Studio (online)
Getting started > Activate via DexProtector Studio (online) -
Activate via DexProtector Studio (offline)
Getting started > Activate via DexProtector Studio (offline) -
3. After activation
Getting started > 3. After activation -
Introduction to configuring DexProtector
Configuring DexProtector > Introduction to configuring DexProtector -
Configuration file overview
Configuring DexProtector > Configuration file overview -
Filters: A guide to targeting resources
Configuring DexProtector > Filters: A guide to targeting resources -
Resource Encryption
Configuring DexProtector > Resource Encryption -
Configuring DexProtector for applications
Configuring DexProtector > Configuring DexProtector for applications -
JavaScript and HTML-based Hybrid and Cross-Platform Apps
DexProtecting Hybrid and Cross-Platform Applications > JavaScript and HTML-based Hybrid and Cross-Platform Apps -
Flutter
DexProtecting Hybrid and Cross-Platform Applications > Flutter -
Frameworks
DexProtecting iOS Frameworks and XCFrameworks > Frameworks -
XCFrameworks
DexProtecting iOS Frameworks and XCFrameworks > XCFrameworks -
Overview
DexProtector Studio > Overview -
Using DexProtector Studio: DexProtector JAR and License File
DexProtector Studio > Using DexProtector Studio: DexProtector JAR and License File -
Managing DexProtector JAR and License File
DexProtector Studio > Managing DexProtector JAR and License File -
Activating your license via Studio (online)
DexProtector Studio > Activating your license via Studio (online) -
Activating your license via Studio (offline)
DexProtector Studio > Activating your license via Studio (offline) -
Protecting your iOS app or Framework with DexProtector Studio
DexProtector Studio > Protecting your iOS app or Framework with DexProtector Studio -
Protection Recommendations
DexProtector Studio > Protection Recommendations -
Load Package for Protection
DexProtector Studio > Load Package for Protection -
Manage Protection Settings
DexProtector Studio > Manage Protection Settings -
Run Protection and View Protection Results
DexProtector Studio > Run Protection and View Protection Results -
Final Checklist
Completing the DexProtector Process > Final Checklist -
Run DexProtector via the CLI
Completing the DexProtector Process > Run DexProtector via the CLI -
Run DexProtector via DexProtector Studio
Completing the DexProtector Process > Run DexProtector via DexProtector Studio -
Using Alice with DexProtector
Alice - Threat Reporting and Telemetry > Using Alice with DexProtector -
General FAQs - DexProtector for iOS
FAQs > General FAQs - DexProtector for iOS -
FAQs on Installation, Activation, Configuration, and Distribution
FAQs > FAQs on Installation, Activation, Configuration, and Distribution
Link copied!