Overview
After downloading the Xcode SDK, you can integrate the SDK into your project and build the app simply by running the provided scripts, without manually adjusting individual project settings.
You will find two scripts inside the Tools folder included with the Xcode SDK download:
install.sh
A script for adding libraries and enabling the hack-detection warning UI.
AppSealing.sh
A script that builds the project, generates an IPA, and creates the integrity metadata for the app.
1. Extract the Xcode SDK
First, extract the downloaded SDK to the root directory of your project.
The AppSealingSDK folder must be located in the project root.
Note: in Flutter case, please put AppSealingSDK under /project root/ios/
2. Run install.sh
First, grant execution permission and run install.sh.
% cd /YOUR_XCODE_PROJECT_ROOT
% chmod +x ./AppSealingSDK/Tools/install.sh
% ./AppSealingSDK/Tools/install.sh
Once permissions are granted and the script runs correctly, it scans your project structure and detects available build targets.
**********************************
AVAILABLE TARGETS
**********************************
1. Project_A
2. Project_B
> Select the target number to apply 'App Sealing' to: Enter the number corresponding to the correct project to proceed.
> Select the target number to apply 'App Sealing' to: 1
Selected target: TestApp_Swift
✅ AppSealing framework added.
✅ LEASection.mm added.
✅ New 'AppSealing' run script added.
✅ Xcode build flags updated.
For Swift-based projects, the script asks whether to add a bridging header:
**********************************
Do you want to add the bridging header for Swift?
**********************************
1. Yes
2. No
> Enter your choice (1/2):
Finally, choose which sample code to use.
This sample code enables the warning message UI that appears when a hacking threat is detected during runtime.
✅ Project saved. AppSealing setup complete for target: Project_A
**********************************
To Copy and paste Sample code
**********************************
Select a UI framework:
**********************************
1. SwiftUI
2. Swift UIKit
3. Objective-C UIKit
> Enter your choice (1/2/3):Enter the number that matches the language/framework you are using.
The selected sample file will open automatically.
Add the sample code directly into your project’s main view or main view controller.
This completes all required setup for install.sh.
3. Run ApplySealing.sh
Once your project is ready for build, run the ApplySealing.sh script to build the project, generate the IPA, and create the AppSealing integrity metadata.
When the script completes successfully, the generated IPA can be uploaded to TestFlight.
First, grant execution permissions to the required files:
% cd /YOUR_XCODE_PROJECT_ROOT
% chmod +x ./AppSealingSDK/Tools/generate_hash ./AppSealingSDK/Tools/ApplySealing.sh
Run ApplySealing.sh to select which project to build.
If multiple .xcworkspace or .xcodeproj files exist in the project, they will be listed as selectable options.
% ./AppSealingSDK/Tools/ApplySealing.sh
...
Saving detailed logs to: ./Build/build.log
Scanning parant directory for .xcworkspace and .xcodeproj files...
[1] /Users/you/project_root/..../Project_A.xcodeproj
[2] /Users/you/project_root/..../Project_A_Sub.xcodeproj
Select a project or workspace
Your choice:
After choosing a project, select the build scheme.
Select a project or workspace
Your choice: 1
Selected: /Users/you/project_root/..../Project_A.xcodeproj
Finding available schmems...
------------------------------------
[1] Project_A
[2] Project_A_Debug
------------------------------------
Select a build scheme
Your choice:
After selecting the scheme, the IPA is generated.
Select a build scheme
Your choice: 1
Selected scheme: Project_A
Cleaning...
Archiving...
Archiving in progres...
Done
Exporting IPA...
Done
IPA exported to: ./Build/
------------------------------------
[1] ./Build/Project_A.ipa
------------------------------------
Select an IPA to apply AppSealing
Your choice:
Next, choose the IPA to use, and then configure the security options for integrity generation.
Anti-Swizzling is disabled by default → choose whether to enable it (Y = enable)
Anti-Hooking is enabled by default → choose whether to disable it (N = keep enabled)
Select an IPA to apply AppSealing
Your choice: 1
Selected IPA: ./Build/Project_A.ipa
Enable Anti-Swizzle? (Y/N)
Your choice: N
Disable Anti-Hook? (Y/N)
Your choice: N
Running sealing tool...
All steps completed.
Full logs: ./Build/build.logAfter the script completes successfully, the full logs are saved at ./Build/build.log
You can now upload the IPA from the Build directory to TestFlight for distribution.