Reynard is a Gecko-based mobile web browser for iOS 14+.
Unlike other browsers on iOS that are forced to use Apple's WebKit engine (including Safari and all third-party browsers), Reynard uses Gecko. This is the same engine that powers the Firefox browser on desktop and Android devices.
This project is mainly for users on older iOS versions who are stuck with an outdated version of WebKit. Because WebKit is bundled with the OS, these devices cannot receive engine updates and often fail to load modern websites. By using Gecko which is kept up to date independently, Reynard allows these sites to work again. Users on newer iOS versions can also use the browser if they want an alternative browser engine on their device.
The latest builds are available on the Releases page.
For the best performance and automatic JIT enablement, it is recommended to sideload Reynard via TrollStore using the Reynard-TrollStore.tipa build.
If TrollStore is not available, you should use AltStore or SideStore to sideload the Reynard.ipa build instead. Please note that you must select the Keep App Extensions option during installation, as Reynard relies on its extensions to function and will not work without them. After sideloading, you may want to enable JIT by following this guide.
You can also click here to add the AltStore Source for Reynard in AltStore or SideStore.
Important
- LiveContainer is not supported due to its own limitations.
- Compatibility with other sideloading methods is currently unknown.
- On iOS 17.0, the TrollStore build does not work correctly, so sideload the
Reynard.ipabuild instead.
This project is still in an early experimental state, so expect bugs and missing features. If you encounter issues, check the Issues & FAQ page before opening a new issue.
These sites are known to break or render incorrectly on iOS 14. The screenshots below compare how they load in Safari versus Reynard.
| github.com | chatgpt.com | apple.com | |||
|---|---|---|---|---|---|
| Safari | Reynard | Safari | Reynard | Safari | Reynard |
|
|
|
|
|
|
|
|
|
|
|
|
|
Reynard also works great on the latest version of iOS!
![]() |
![]() |
![]() |
![]() |
![]() |
Warning
Build instructions are included below for reference. Please be aware that I do not provide support for issues or errors encountered during the build process.
To build the project, you'll need Xcode, Python 3, Rust and Cargo, and ldid.
Clone the repository.
git clone --recursive https://github.com/minh-ton/reynard-browser
cd reynard-browserDownload Gecko and apply patches.
./tools/development/update-gecko.sh
./tools/development/apply-patches.shBuild dependencies and the Gecko engine.
./tools/development/build-idevice.sh
./tools/development/build-gecko.shTo run Reynard, open Reynard.xcodeproj in Xcode and build/run it from there.
This project initially started out of curiosity. I wanted to see if I could get Gecko to run without the BrowserEngineKit framework, so it could be further modified to run on iOS versions as far back as possible. I got it working, and since then, I’ve been focusing on developing engine patches for better UIKit integration, fixing bugs, and turning this into a full, usable browser.
If you’ve come across this repository and find it interesting, I’d love to get help or collaborate on it. I’m learning as I go here and don’t have much prior experience with iOS app development or with Gecko itself, so any contributions, feedback, or pointers would be greatly appreciated.
- LiveContainer: app extension handling and NSExtension usage.
- StikDebug and idevice: pairing-based JIT enablement support.
- TrollStore: spawning a binary as root and JIT enablement.
- Amethyst-iOS and dolphin-ios: Various utility functions, numerous private API usage, and memory mapping stuff.
- Pre-existing work on bringing Gecko to iOS using BrowserEngineKit: most of the difficult engine integration.
This project is licensed under the GNU General Public License v3.0, except for the patches directory containing the modifications to the Firefox Gecko engine and therefore is licensed under the Mozilla Public License 2.0.




