Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Reynard Browser

Reynard is a Gecko-based web browser for iOS 13+.

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.

Besides providing an alternative, up-to-date browser engine1, Reynard supports Firefox add-ons, including more capable ad-blocking extensions, along with privacy features such as Enhanced Tracking Protection and DNS over HTTPS.

Installation

The latest builds are available for download on the Releases page. Please note that this project is still in an early experimental state, so expect bugs and missing features.

For common questions and troubleshooting, see the FAQ.

Reynard is available as a standard build, a TrollStore build2, and a jailbroken build3, depending on your iOS version and installation method:

MethodiOS versionBuild
AltStore or SideStoreiOS 17.4+Reynard.ipa
TrollStoreiOS 14 - 16.6.1, 17.0Reynard-TrollStore.tipa
TrollStoreJailbroken iOS 14Reynard-Jailbroken.ipa
TrollStore LiteJailbroken iOS 16.7 - 16.7.16, 17.0.1+Reynard-TrollStore.tipa
Filza File Manager + AppSync UnifiedJailbroken iOS 13Reynard-Jailbroken.ipa

[!NOTE] Although jailbroken builds are available, using Reynard in a jailbroken environment is not recommended. Tweaks and other system modifications may affect the browser's performance, stability, or functionality, and issues resulting from them may receive limited support.

For AltStore or SideStore installations:

Make sure to select Keep App Extensions during installation, as Reynard will not work without them.

You can also click here to add the AltSource for Reynard to AltStore or SideStore.

[!IMPORTANT]

  • LiveContainer is not supported due to its own limitations.
  • Sideloading using a distribution certificate for signing are not supported.⁠
  • Other sideloading methods may be incompatible with Reynard, and no support will be provided for issues arising from them.

Preview

iOS 14 (iPhone 6S Plus, 14.1)

These sites are known to break or render incorrectly on iOS 14. The screenshots below compare how they load in Safari versus Reynard.

github.comchatgpt.comapple.com
SafariReynardSafariReynardSafariReynard






iOS 15 (iPhone 7, 15.8.6)






iOS 26 (iPhone 13 mini, 26.1)

Reynard also works great on the latest version of iOS!






Building

[!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, and Rust & Cargo.

Clone the repository.

git clone --recursive https://github.com/minh-ton/reynard-browser
cd reynard-browser

Download Gecko and apply patches.

./tools/development/update-gecko.sh
./tools/development/apply-patches.sh

Build dependencies and the Gecko engine.

./tools/development/build-idevice.sh
./tools/development/build-gecko.sh

To run Reynard, open Reynard.xcodeproj in Xcode and build/run it from there.

Development

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 support iOS versions as far back as possible. I got it working, and since then, I’ve been focusing on developing engine patches for better integration with iOS, fixing bugs, and turning Reynard 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.

You can also help translate Reynard into more languages, or support the time I spend working on the project through the links below.

Acknowledgements

  • 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, dolphin-ios, DukeX, and MeloNX: Various utility functions, numerous private API usage, and JIT memory handling.
  • WebKit: Private API references for deeper iOS integration, such as sandboxing, hardware keyboard support, and lifecycle events.
  • Pre-existing work on bringing Gecko to iOS using BrowserEngineKit: most of the difficult engine integration.

License

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.

Footnotes

  1. This is particularly useful on older iOS versions. Because WebKit is bundled with the OS, devices that no longer receive iOS updates are also stuck with an older browser engine, which can cause modern websites to break or render incorrectly.

  2. The TrollStore build provides automatic JIT enablement, better performance, and automatic app updates. For automatic app updates, make sure URL Scheme Enabled is turned on in TrollStore.

  3. The jailbroken build provides automatic JIT enablement and better performance.

关于 About

An experimental Gecko-based web browser for iOS 13+.
geckoiosswiftweb-browser

语言 Languages

Swift97.0%
Objective-C2.1%
Shell0.6%
C0.4%
Objective-C++0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
757
Total Commits
峰值: 66次/周
Less
More

核心贡献者 Contributors