IPA Encryption Checker (IPAchecker)
A website that analyzes IPA files via the IPAchecker python package (original code provided by norep on the iOS Obscura discord server, credits to him)
- Frontend is hosted on Github Pages
- Backend and File uploading is hosted on a CloudFlare Worker and on CloudFlare R2 and a Github workflow
Contact me through email if you have any questions
Warning
You must use this tutorial branch of the repository in order for things to work, due to the cloudflare-worker.js not being updated anymore for security reasons
- Frontend: GitHub Pages
- Backend: Requires a CloudFlare account with access to Workers and R2 storage
- Python Script: A Github workflow that can be triggerd by the CloudFlare Worker (or Python 3.7+ installed if you want to use the script locally)
- Fork or clone this repo
- All frontend files are in the root directory (
index.html,styles.css,script.js, etc) - Push the changes to the
mainbranch. - In your GitHub repo, go to Settings > Pages and set the source to the
mainbranch (root) - Your site will be live at
https://<yourgithubusername>.github.io/ipa-encryption-checker/
- In the CloudFlare dashboard, create an R2 bucket (e.g
ipa-files). - Bind your CloudFlare R2 bucket in the CloudFlare Worker (e.g
R2_IPA_FILES).
- Create a KV namespace (e.g
KV_SESSIONS) for session management
-
Install Wrangler CLI:
npm install -g wrangler
-
Configure the Worker's secerts
-
Update the Worker's code to use this code
-
Ensure you have Python 3.7+ installed
-
Install required packages:
pip install macholib rich
-
Run the script on an IPA:
python ipa_analyzer.py /path/to/your/ipa.ipa
- Frontend: Open
index.htmldirectly in your browser for local testing (you'll have to add the local domain to ALLOWED_ORIGINS in the Worker's code) - Backend: Use Wrangler's dev mode to test your Worker locally:
wrangler dev
- Python: Test the script with the Github workflow or test it locally
- Frontend: Push to
mainbranch, GitHub Pages will auto-deploy - Backend: Use
wrangler publishfor production deployment - Python: GitHub Workflow
Notes:
- You must set up your own GitHub Personal Access Token (PAT) with
repoandworkflowpermissions for the Worker to trigger the Workflow, you can make one by going to Token settings on Github, you also need to put it as a secert in the Worker (Do NOT share the token with anyone) - Change all Frontend files code to use your own Worker's URL
- Change the Workflow's code to use your own Worker's URL
Warning
In no way am i responsible for anything that happens/might happen when you use this
a list of todos and upcoming feature
- account registration with firebase
- how to build/set up docs
- save analysis results as a .json file
- allow for a 90 day downloadable link for hosting the ipa and the results
- make the user be able to see the previous analysis
- upload the cloudflare worker's code
- get the website to run in the first place



