simforge is a tool that enables running ARM64 iOS apps on Apple Silicon iOS simulators by modifying the Mach-O binary headers to indicate simulator compatibility.
Start with a decrypted build of the iOS app you want to run in the simulator.
Extract the .app bundle from the IPA:
unzip /path/to/your-app-decrypted.ipa -d /path/to/destination/This will create a Payload directory containing the .app bundle.
Run simforge convert on the extracted .app bundle:
simforge convert /path/to/Payload/YourApp.appsimforge will find all Mach-O binaries in the app bundle and modify their headers (in place) to indicate simulator compatibility
simforge convert ./app-decrypt-com.zhiliaoapp.musically9bm7fcnv.app
Successfully converted: app-decrypt-com.zhiliaoapp.musically9bm7fcnv.app/PlugIns/AWEVideoWidget.appex/AWEVideoWidget
Successfully converted: app-decrypt-com.zhiliaoapp.musically9bm7fcnv.app/PlugIns/AwemeShareExtension.appex/AwemeShareExtension
Successfully converted: app-decrypt-com.zhiliaoapp.musically9bm7fcnv.app/PlugIns/AwemeBroadcastExtension.appex/AwemeBroadcastExtension
Successfully converted: app-decrypt-com.zhiliaoapp.musically9bm7fcnv.app/PlugIns/AwemeNotificationService.appex/AwemeNotificationService
Successfully converted: app-decrypt-com.zhiliaoapp.musically9bm7fcnv.app/PlugIns/TikTokIntentExtension.appex/TikTokIntentExtension
Successfully converted: app-decrypt-com.zhiliaoapp.musically9bm7fcnv.app/PlugIns/TikTokMessageExtension.appex/TikTokMessageExtension
Successfully converted: app-decrypt-com.zhiliaoapp.musically9bm7fcnv.app/PlugIns/AwemeWidgetExtension.appex/AwemeWidgetExtension
Successfully converted: app-decrypt-com.zhiliaoapp.musically9bm7fcnv.app/TikTokAfter conversion, the app needs to be re-signed. You can simply ad-hoc sign:
# Sign frameworks first
codesign -f -s - /path/to/Payload/YourApp.app/Frameworks/*
# Then sign the main app bundle
codesign -f -s - /path/to/Payload/YourApp.appYou can drag-and-drop YourApp.app folder into your simulator home screen to install, or install from command line:
# List available simulators
xcrun simctl list devices
# Install the app (replace UUID with your simulator's identifier)
xcrun simctl install "SIMULATOR_UUID" /path/to/Payload/YourApp.appYou can also launch an installed app with dylib injection:
simforge launch --bundleid com.example.app --dylib /path/to/tweak.dylibThe dylib will be automatically converted for simulator compatibility and signed if needed.

