CyberKit is a backport of WebKit to older iOS.
Please visit the releases.
Official OS support & FAQPlease visit the CyberKit wiki.
Development Branch HistoryYou can clone just the current development branch with git clone -b safari-7619.1.26.31-branch --single-branch https://github.com/UInt2048/CyberKit.git
You may find https://en.wikipedia.org/w/index.php?title=Safari_version_history&oldid=1186257925 beneficial to view correspondence between Safari version and iOS version.
If building yourself, you may wish to use the version of Xcode used at the time to build the commit you are building.
On branches diverging before 1 May 2024 (before safari-7619.1.12-branch
, see WebKit#27941), you must run Tools/Scripts/configure-xcode-for-embedded-development
before 1st build or any time you reinstall/update Xcode or its SDKs. If you need the xpc.h header, you can get it from https://github.com/theos/templates/tree/f0fb942c4bb90ef331126e2b38257974b18bc895/ios/xpc_service/headers.
Even now, it still may be useful to replace or supplement Xcode's SDK with one with private headers from https://github.com/theos/sdks. Officially, support for building on the public SDK was introduced in late 2014:
If a branch needs a newer configure script, you can grab one like this from the ref607 branch: OUT_FILE=~/Desktop/conf; git show 62f80e2:Tools/Scripts/configure-xcode-for-ios-development > $OUT_FILE; chmod 755 $OUT_FILE; $OUT_FILE
On branches diverging before 18 February 2016 (before safari-602.1.32-branch
, see bbc738d), you must build LLVM. You can do so as documented in 1f5b857:
If there are already precompiled binaries:
git checkout 1f5b857 WebKitLibraries/LLVMIncludesIOS9.tar.bz2 WebKitLibraries/LLVMLibrariesIOS9.tar.bz2
perl Tools/Scripts/copy-webkitlibraries-to-product-directory --llvm --sdk=iphoneos --use-llvm-includes=WebKitLibraries/LLVMIncludesIOS9.tar.bz2 --use-llvm-libraries=WebKitLibraries/LLVMLibrariesIOS9.tar.bz2 WebKitBuild/Debug-iphoneos
If you wish to create precompiled binaries:
HEADER_SEARCH_PATHS
in LLVMForJSC.xcconfig
allows you to build the target llvmForJSC
. Note this will not link on iOS, due to architecture issues.~/Documents/git/CyberKit
, expand this archive to ~/Documents/git/CyberKit/llvm
.git checkout 1f5b857 Tools/Scripts/copy-webkitlibraries-to-product-directory
.perl Tools/Scripts/copy-webkitlibraries-to-product-directory --llvm --sdk=iphoneos WebKitBuild/Debug-iphoneos
. This step may require changes.You may be able to ad hoc sign in some commits beginning 2 January 2024 without changes to CyberKit itself. Support for this is limited, but it may be the only method on some Apple Silicon VMs, as explained below.
You will build the "Everything up to CyberKit" target then the appropriate app.
Development Environment NotesDevelopment is performed on macOS using Xcode. However, owing to the number of Xcode versions required, you may need to virtualize or emulate other macOS versions.
Xcode versions are chosen based on the date of commits and the iOS versions supported. The minimum deployment targets can be viewed at https://developer.apple.com/support/xcode/#minimum-requirements. Note that Xcode below 10 did not have a minimum deployment target, so running Xcode 9.4.1 on macOS Mojave should be the earliest Xcode you need to use for any branch.
If you need to emulate an Intel version of macOS on Apple Silicon, you can use UTM:
For later versions, you can dualboot or use the built-in virtualization framework. Note that Apple Silicon VMs require both the host and guest to be on, and have been created on, macOS 15 or later, in order to sign in to your Apple ID in Xcode due to entitlement issues.
If you are running under Intel, I previously had success with virtualizing older macOS versions with https://github.com/myspaghetti/macos-virtualbox but it is no longer maintained. You might consider dualbooting for performance reasons, or check out other methods like https://github.com/kholia/OSX-KVM.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4