[2026-10-06] eagle: work/notes/webkit-macos-version-mapping.md
This commit is contained in:
1 parent
f6267b7c52
commit
0566f6b69b
1 file changed
+181
-183
@@ -17,12 +17,34 @@ Evidence labels:
|
||||
|
||||
| Label | Meaning |
|
||||
|---|---|
|
||||
| `exact/tag` | Apple published an OS-specific WebKit source tag. The full five-part source version is known. |
|
||||
| `exact/binary` | The OS build, WebKit UUID and `CFBundleVersion` were matched in Ravel. |
|
||||
| `train` | The Safari/WebKit release family is known, but Apple has not published an exact OS-specific source tag. `.*` is intentional. |
|
||||
| `exact/tag` | ✅ Confirmed: Apple published an OS-specific WebKit source tag. The full five-part source version is known. |
|
||||
| `exact/binary` | ✅ Confirmed binary mapping: the OS build, WebKit UUID and `CFBundleVersion` were matched in Ravel. This does not by itself confirm an unpublished source tag or a specific source-level API change. |
|
||||
| `❓ unconfirmed/train` | Only the Safari/WebKit release family is known. Apple has not published an exact OS-specific source tag; `.*` is intentional. |
|
||||
|
||||
An OS marketing version alone is not enough for crash forensics. Hardware-specific OS builds can differ, and macOS can receive Safari/WebKit updates separately. For an exact answer, match **OS build + WebKit UUID + `CFBundleVersion`**.
|
||||
|
||||
## Research and table-update procedure
|
||||
|
||||
1. **Identify the OS release.** Record the marketing version and every stable Apple build from [AppleDB](https://api.appledb.dev/ios/main.json). Keep beta builds in the separate beta table.
|
||||
2. **Match the shipped WebKit binary.** Open the same Apple build in [Ravel](https://ravel.dbg.re/browse), select the correct architecture, and record the WebKit Mach-O UUID. For crash research, require an exact UUID match with the crash image.
|
||||
3. **Read `CFBundleVersion`.** Use Ravel metadata when present or read it on the target OS with the Swift snippet below. Strip the platform prefix to obtain `FULL_VERSION`: iOS uses `8`; macOS uses `17` for macOS 12, `18` for 13, `19` for 14, `20` for 15, `21` for 26, and `22` for 27.
|
||||
4. **Resolve and inspect the source.** Check the exact public tag `WebKit-7<FULL_VERSION>`; for version 612 and early 613, also check `Safari-<FULL_VERSION>`. Inspect the API or symbol at that tag. `main`, Safari Technology Preview, or a release-train match alone does not prove inclusion in a system release.
|
||||
5. **Update the row with its evidence.** Use `exact/tag` when the exact public tag is verified. Use `exact/binary` when build + UUID + `CFBundleVersion` are verified but the tag is unavailable, and prefix the inferred source tag with `❓`. If only the release family is known, retain `.*` and use `❓ unconfirmed/train`.
|
||||
|
||||
```swift
|
||||
import WebKit
|
||||
|
||||
let webKitBundleVersion = Bundle(for: WKWebView.self)
|
||||
.object(forInfoDictionaryKey: "CFBundleVersion") as? String
|
||||
```
|
||||
|
||||
Ravel binary paths:
|
||||
|
||||
```text
|
||||
macOS: /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit
|
||||
iOS: /System/Library/Frameworks/WebKit.framework/WebKit
|
||||
```
|
||||
|
||||
## iOS mapping
|
||||
|
||||
iOS production bundle versions use prefix `8`: `CFBundleVersion = 8 + FULL_VERSION`.
|
||||
@@ -45,7 +67,7 @@ iOS production bundle versions use prefix `8`: `CFBundleVersion = 8 + FULL_VERSI
|
||||
| `15.4.1` | `19E258` | `15.4` | `613.1.17.0.8` | `Safari-613.1.17.0.8` | `exact/tag` |
|
||||
| `15.5` | `19F77` | `15.5` | `613.2.7.0.7` | `WebKit-7613.2.7.0.7` | `exact/tag` |
|
||||
| `15.6` | `19G71` | `15.6` | `613.3.9.0.5` | `WebKit-7613.3.9.0.5` | `exact/tag` |
|
||||
| `15.6.1` | `19G82` | `15.6` | `613.3.9.*` | `WebKit-7613.3.9.*` | `train` |
|
||||
| `15.6.1` | `19G82` | `15.6` | `613.3.9.*` | `WebKit-7613.3.9.*` | `❓ unconfirmed/train` |
|
||||
| `15.7` | `19H12` | `15.6.2` | `613.4.1.0.2` | `WebKit-7613.4.1.0.2` | `exact/tag` |
|
||||
| `15.7.1` | `19H117` | `15.6.3` | `613.5.1.0.2` | `WebKit-7613.5.1.0.2` | `exact/tag` |
|
||||
| `15.7.2` | `19H218` | `15.6.4` | `613.6.1.0.3` | `WebKit-7613.6.1.0.3` | `exact/tag` |
|
||||
@@ -57,14 +79,14 @@ iOS production bundle versions use prefix `8`: `CFBundleVersion = 8 + FULL_VERSI
|
||||
| `15.7.8` | `19H364` | `15.6.6` | `613.7.1.0.13` | `WebKit-7613.7.1.0.13` | `exact/tag` |
|
||||
| `15.7.9` | `19H365` | `15.6.6` | `613.7.1.0.13` | `WebKit-7613.7.1.0.13` | `exact/tag` |
|
||||
| `15.8` | `19H370` | `15.6.6` | `613.7.1.0.13` | `WebKit-7613.7.1.0.13` | `exact/tag` |
|
||||
| `15.8.1` | `19H380` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `train` |
|
||||
| `15.8.2` | `19H384` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `train` |
|
||||
| `15.8.3` | `19H386` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `train` |
|
||||
| `15.8.4` | `19H390` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `train` |
|
||||
| `15.8.5` | `19H394` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `train` |
|
||||
| `15.8.6` | `19H402` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `train` |
|
||||
| `15.8.7` | `19H411` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `train` |
|
||||
| `15.8.8` | `19H422` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `train` |
|
||||
| `15.8.1` | `19H380` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `❓ unconfirmed/train` |
|
||||
| `15.8.2` | `19H384` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `❓ unconfirmed/train` |
|
||||
| `15.8.3` | `19H386` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `❓ unconfirmed/train` |
|
||||
| `15.8.4` | `19H390` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `❓ unconfirmed/train` |
|
||||
| `15.8.5` | `19H394` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `❓ unconfirmed/train` |
|
||||
| `15.8.6` | `19H402` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `❓ unconfirmed/train` |
|
||||
| `15.8.7` | `19H411` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `❓ unconfirmed/train` |
|
||||
| `15.8.8` | `19H422` | `15.6` | `613.7.1.*` | `WebKit-7613.7.1.*` | `❓ unconfirmed/train` |
|
||||
|
||||
### iOS 16
|
||||
|
||||
@@ -83,26 +105,26 @@ iOS production bundle versions use prefix `8`: `CFBundleVersion = 8 + FULL_VERSI
|
||||
| `16.4` | `20E247` | `16.4` | `615.1.26.10.23` | `WebKit-7615.1.26.10.23` | `exact/tag` |
|
||||
| `16.4.1` | `20E252` | `16.4` | `615.1.26.10.24` | `WebKit-7615.1.26.10.24` | `exact/tag` |
|
||||
| `16.5` | `20F66` | `16.5` | `615.2.9.10.3` | `WebKit-7615.2.9.10.3` | `exact/tag` |
|
||||
| `16.5.1` | `20F75` | `16.5` | `615.2.9.*` | `WebKit-7615.2.9.*` | `train` |
|
||||
| `16.5.1` | `20F75` | `16.5` | `615.2.9.*` | `WebKit-7615.2.9.*` | `❓ unconfirmed/train` |
|
||||
| `16.6` | `20G75` | `16.6` | `615.3.12.10.2` | `WebKit-7615.3.12.10.2` | `exact/tag` |
|
||||
| `16.6.1` | `20G81` | `16.6` | `615.3.12.10.2` | `WebKit-7615.3.12.10.2` | `exact/tag` |
|
||||
| `16.7` | `20H19` | `16.6` | `615.3.12.10.4` | `WebKit-7615.3.12.10.4` | `exact/tag` |
|
||||
| `16.7.1` | `20H30` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.1` | `20H30` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.2` | `20H115` | `16.6` | `615.3.12.110.2` | `WebKit-7615.3.12.110.2` | `exact/tag` |
|
||||
| `16.7.3` | `20H232` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.4` | `20H240` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.5` | `20H307` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.6` | `20H320` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.7` | `20H330` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.8` | `20H343` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.9` | `20H348` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.10` | `20H350` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.11` | `20H360` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.12` | `20H364` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.13` | `20H365` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.14` | `20H370` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.15` | `20H380` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.16` | `20H392` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `16.7.3` | `20H232` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.4` | `20H240` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.5` | `20H307` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.6` | `20H320` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.7` | `20H330` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.8` | `20H343` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.9` | `20H348` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.10` | `20H350` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.11` | `20H360` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.12` | `20H364` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.13` | `20H365` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.14` | `20H370` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.15` | `20H380` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `16.7.16` | `20H392` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
|
||||
### iOS 17
|
||||
|
||||
@@ -111,30 +133,30 @@ iOS production bundle versions use prefix `8`: `CFBundleVersion = 8 + FULL_VERSI
|
||||
| `17.0` | `21A326`<br>`21A327`<br>`21A329`<br>`21A331` | `17` | `616.1.27.10.13` | `WebKit-7616.1.27.10.13` | `exact/tag` |
|
||||
| `17.0.1` | `21A340` | `17` | `616.1.27.10.15` | `WebKit-7616.1.27.10.15` | `exact/tag` |
|
||||
| `17.0.2` | `21A350`<br>`21A351` | `17` | `616.1.27.10.15` | `WebKit-7616.1.27.10.15` | `exact/tag` |
|
||||
| `17.0.3` | `21A360` | `17` | `616.1.27.*` | `WebKit-7616.1.27.*` | `train` |
|
||||
| `17.1` | `21B74`<br>`21B80` | `17.1` | `616.2.9.*` | `WebKit-7616.2.9.*` | `train` |
|
||||
| `17.1.1` | `21B91` | `17.1` | `616.2.9.*` | `WebKit-7616.2.9.*` | `train` |
|
||||
| `17.1.2` | `21B101` | `17.1` | `616.2.9.*` | `WebKit-7616.2.9.*` | `train` |
|
||||
| `17.0.3` | `21A360` | `17` | `616.1.27.*` | `WebKit-7616.1.27.*` | `❓ unconfirmed/train` |
|
||||
| `17.1` | `21B74`<br>`21B80` | `17.1` | `616.2.9.*` | `WebKit-7616.2.9.*` | `❓ unconfirmed/train` |
|
||||
| `17.1.1` | `21B91` | `17.1` | `616.2.9.*` | `WebKit-7616.2.9.*` | `❓ unconfirmed/train` |
|
||||
| `17.1.2` | `21B101` | `17.1` | `616.2.9.*` | `WebKit-7616.2.9.*` | `❓ unconfirmed/train` |
|
||||
| `17.2` | `21C62` | `17.2` | `617.1.17.10.9` | `WebKit-7617.1.17.10.9` | `exact/tag` |
|
||||
| `17.2.1` | `21C66` | `17.2` | `617.1.17.10.9` | `WebKit-7617.1.17.10.9` | `exact/tag` |
|
||||
| `17.3` | `21D50` | `17.3` | `617.2.4.*` | `WebKit-7617.2.4.*` | `train` |
|
||||
| `17.3` | `21D50` | `17.3` | `617.2.4.*` | `WebKit-7617.2.4.*` | `❓ unconfirmed/train` |
|
||||
| `17.3.1` | `21D61` | `17.3.1` | `617.2.4.10.8` | `WebKit-7617.2.4.10.8` | `exact/tag` |
|
||||
| `17.4` | `21E219` | `17.4` | `618.1.15.10.11` | `WebKit-7618.1.15.10.11` | `exact/tag` |
|
||||
| `17.4.1` | `21E236`<br>`21E237` | `17.4` | `618.1.15.*` | `WebKit-7618.1.15.*` | `train` |
|
||||
| `17.4.1` | `21E236`<br>`21E237` | `17.4` | `618.1.15.*` | `WebKit-7618.1.15.*` | `❓ unconfirmed/train` |
|
||||
| `17.5` | `21F79` | `17.5` | `618.2.12.10.9` | `WebKit-7618.2.12.10.9` | `exact/tag` |
|
||||
| `17.5.1` | `21F90` | `17.5` | `618.2.12.10.9` | `WebKit-7618.2.12.10.9` | `exact/tag` |
|
||||
| `17.6` | `21G80` | `17.6` | `618.3.11.10.5` | `WebKit-7618.3.11.10.5` | `exact/tag` |
|
||||
| `17.6.1` | `21G101`<br>`21G93` | `17.6` | `618.3.11.10.5` | `WebKit-7618.3.11.10.5` | `exact/tag` |
|
||||
| `17.7` | `21H16` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `17.7.1` | `21H216` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `17.7.2` | `21H221` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `17.7` | `21H16` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `17.7.1` | `21H216` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `17.7.2` | `21H221` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
|
||||
### iOS 18
|
||||
|
||||
| OS version | Apple build(s) | Safari | WebKit `FULL_VERSION` | Source release | Evidence |
|
||||
|---|---|---:|---:|---|---|
|
||||
| `18.0` | `22A3351`<br>`22A3354` | `18` | `619.1.26.30.5` | `WebKit-7619.1.26.30.5` | `exact/tag` |
|
||||
| `18.0.1` | `22A3370` | `18` | `619.1.26.*` | `WebKit-7619.1.26.*` | `train` |
|
||||
| `18.0.1` | `22A3370` | `18` | `619.1.26.*` | `WebKit-7619.1.26.*` | `❓ unconfirmed/train` |
|
||||
| `18.1` | `22B83` | `18.1` | `619.2.8.10.7` | `WebKit-7619.2.8.10.7` | `exact/tag` |
|
||||
| `18.1.1` | `22B91` | `18.1.1` | `619.2.8.10.9` | `WebKit-7619.2.8.10.9` | `exact/tag` |
|
||||
| `18.2` | `22C152` | `18.2` | `620.1.16.10.11` | `WebKit-7620.1.16.10.11` | `exact/tag` |
|
||||
@@ -142,53 +164,53 @@ iOS production bundle versions use prefix `8`: `CFBundleVersion = 8 + FULL_VERSI
|
||||
| `18.3` | `22D63`<br>`22D64`<br>`22D8063` | `18.3` | `620.2.4.10.7` | `WebKit-7620.2.4.10.7` | `exact/tag` |
|
||||
| `18.3.1` | `22D72`<br>`22D8075` | `18.3` | `620.2.4.10.7` | `WebKit-7620.2.4.10.7` | `exact/tag` |
|
||||
| `18.3.2` | `22D8082`<br>`22D82` | `18.3.1` | `620.2.4.10.8` | `WebKit-7620.2.4.10.8` | `exact/tag` |
|
||||
| `18.4` | `22E240` | `18.4` | `621.1.15.*` | `WebKit-7621.1.15.*` | `train` |
|
||||
| `18.4.1` | `22E252` | `18.4` | `621.1.15.*` | `WebKit-7621.1.15.*` | `train` |
|
||||
| `18.5` | `22F76` | `18.5` | `621.2.5.*` | `WebKit-7621.2.5.*` | `train` |
|
||||
| `18.6` | `22G86` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.6.1` | `22G90` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.6.2` | `22G100` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7` | `22H20` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7.1` | `22H31` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7.2` | `22H124` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7.3` | `22H217` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7.4` | `22H218` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7.5` | `22H311` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7.6` | `22H320` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7.7` | `22H333`<br>`22H340` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7.8` | `22H352` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7.9` | `22H355` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.7.10` | `22H374` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `18.4` | `22E240` | `18.4` | `621.1.15.*` | `WebKit-7621.1.15.*` | `❓ unconfirmed/train` |
|
||||
| `18.4.1` | `22E252` | `18.4` | `621.1.15.*` | `WebKit-7621.1.15.*` | `❓ unconfirmed/train` |
|
||||
| `18.5` | `22F76` | `18.5` | `621.2.5.*` | `WebKit-7621.2.5.*` | `❓ unconfirmed/train` |
|
||||
| `18.6` | `22G86` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.6.1` | `22G90` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.6.2` | `22G100` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7` | `22H20` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7.1` | `22H31` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7.2` | `22H124` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7.3` | `22H217` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7.4` | `22H218` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7.5` | `22H311` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7.6` | `22H320` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7.7` | `22H333`<br>`22H340` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7.8` | `22H352` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7.9` | `22H355` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `18.7.10` | `22H374` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
|
||||
### iOS 26
|
||||
|
||||
| OS version | Apple build(s) | Safari | WebKit `FULL_VERSION` | Source release | Evidence |
|
||||
|---|---|---:|---:|---|---|
|
||||
| `26.0` | `23A330`<br>`23A341`<br>`23A345` | `26` | `622.1.22.*` | `WebKit-7622.1.22.*` | `train` |
|
||||
| `26.0.1` | `23A355` | `26` | `622.1.22.*` | `WebKit-7622.1.22.*` | `train` |
|
||||
| `26.1` | `23B85` | `26.1` | `622.2.11.*` | `WebKit-7622.2.11.*` | `train` |
|
||||
| `26.2` | `23C55` | `26.2` | `623.1.14.*` | `WebKit-7623.1.14.*` | `train` |
|
||||
| `26.2.1` | `23C71` | `26.2` | `623.1.14.*` | `WebKit-7623.1.14.*` | `train` |
|
||||
| `26.3` | `23D127`<br>`23D8128` | `26.3` | `623.2.7.*` | `WebKit-7623.2.7.*` | `train` |
|
||||
| `26.3.1` | `23D8133` | `26.3` | `623.2.7.*` | `WebKit-7623.2.7.*` | `train` |
|
||||
| `26.4` | `23E246` | `26.4` | `624.1.16.*` | `WebKit-7624.1.16.*` | `train` |
|
||||
| `26.4.1` | `23E254` | `26.4` | `624.1.16.*` | `WebKit-7624.1.16.*` | `train` |
|
||||
| `26.4.2` | `23E261` | `26.4` | `624.1.16.*` | `WebKit-7624.1.16.*` | `train` |
|
||||
| `26.5` | `23F77` | `26.5` | `624.2.5.*` | `WebKit-7624.2.5.*` | `train` |
|
||||
| `26.5.1` | `23F81` | `26.5` | `624.2.5.*` | `WebKit-7624.2.5.*` | `train` |
|
||||
| `26.5.2` | `23F84` | `26.5` | `624.2.5.*` | `WebKit-7624.2.5.*` | `train` |
|
||||
| `26.6` | `23G71` | `26.6` | `624.4.5.*` | `WebKit-7624.4.5.*` | `train` |
|
||||
| `26.6.1` | `23G83` | `26.6` | `624.4.5.*` | `WebKit-7624.4.5.*` | `train` |
|
||||
| `26.6.2` | `23G90` | `26.6` | `624.4.5.*` | `WebKit-7624.4.5.*` | `train` |
|
||||
| `26.7` | `23H24` | `26.6` | `624.5.1.*` | `WebKit-7624.5.1.*` | `train` |
|
||||
| `26.7.1` | `23H30` | `26.6` | `624.5.1.*` | `WebKit-7624.5.1.*` | `train` |
|
||||
| `26.0` | `23A330`<br>`23A341`<br>`23A345` | `26` | `622.1.22.*` | `WebKit-7622.1.22.*` | `❓ unconfirmed/train` |
|
||||
| `26.0.1` | `23A355` | `26` | `622.1.22.*` | `WebKit-7622.1.22.*` | `❓ unconfirmed/train` |
|
||||
| `26.1` | `23B85` | `26.1` | `622.2.11.*` | `WebKit-7622.2.11.*` | `❓ unconfirmed/train` |
|
||||
| `26.2` | `23C55` | `26.2` | `623.1.14.*` | `WebKit-7623.1.14.*` | `❓ unconfirmed/train` |
|
||||
| `26.2.1` | `23C71` | `26.2` | `623.1.14.*` | `WebKit-7623.1.14.*` | `❓ unconfirmed/train` |
|
||||
| `26.3` | `23D127`<br>`23D8128` | `26.3` | `623.2.7.*` | `WebKit-7623.2.7.*` | `❓ unconfirmed/train` |
|
||||
| `26.3.1` | `23D8133` | `26.3` | `623.2.7.*` | `WebKit-7623.2.7.*` | `❓ unconfirmed/train` |
|
||||
| `26.4` | `23E246` | `26.4` | `624.1.16.*` | `WebKit-7624.1.16.*` | `❓ unconfirmed/train` |
|
||||
| `26.4.1` | `23E254` | `26.4` | `624.1.16.*` | `WebKit-7624.1.16.*` | `❓ unconfirmed/train` |
|
||||
| `26.4.2` | `23E261` | `26.4` | `624.1.16.*` | `WebKit-7624.1.16.*` | `❓ unconfirmed/train` |
|
||||
| `26.5` | `23F77` | `26.5` | `624.2.5.*` | `WebKit-7624.2.5.*` | `❓ unconfirmed/train` |
|
||||
| `26.5.1` | `23F81` | `26.5` | `624.2.5.*` | `WebKit-7624.2.5.*` | `❓ unconfirmed/train` |
|
||||
| `26.5.2` | `23F84` | `26.5` | `624.2.5.*` | `WebKit-7624.2.5.*` | `❓ unconfirmed/train` |
|
||||
| `26.6` | `23G71` | `26.6` | `624.4.5.*` | `WebKit-7624.4.5.*` | `❓ unconfirmed/train` |
|
||||
| `26.6.1` | `23G83` | `26.6` | `624.4.5.*` | `WebKit-7624.4.5.*` | `❓ unconfirmed/train` |
|
||||
| `26.6.2` | `23G90` | `26.6` | `624.4.5.*` | `WebKit-7624.4.5.*` | `❓ unconfirmed/train` |
|
||||
| `26.7` | `23H24` | `26.6` | `624.5.1.*` | `WebKit-7624.5.1.*` | `❓ unconfirmed/train` |
|
||||
| `26.7.1` | `23H30` | `26.6` | `624.5.1.*` | `WebKit-7624.5.1.*` | `❓ unconfirmed/train` |
|
||||
|
||||
### iOS 27
|
||||
|
||||
| OS version | Apple build(s) | Safari | WebKit `FULL_VERSION` | Source release | Evidence |
|
||||
|---|---|---:|---:|---|---|
|
||||
| `27.0` | `24A427`<br>`24A437`<br>`24A8428` | `27` | `625.1.29.*` | `WebKit-7625.1.29.*` | `train` |
|
||||
| `27.0.1` | `24A446` | `27` | `625.1.29.*` | `WebKit-7625.1.29.*` | `train` |
|
||||
| `27.0` | `24A427`<br>`24A437`<br>`24A8428` | `27` | `625.1.29.*` | `WebKit-7625.1.29.*` | `❓ unconfirmed/train` |
|
||||
| `27.0.1` | `24A446` | `27` | `625.1.29.*` | `WebKit-7625.1.29.*` | `❓ unconfirmed/train` |
|
||||
|
||||
|
||||
## macOS mapping
|
||||
@@ -204,24 +226,24 @@ macOS production prefixes are: 12 → `17`, 13 → `18`, 14 → `19`, 15 → `20
|
||||
| `12.3.1` | `21E258` | `15.4` | `613.1.17.1.13` | `Safari-613.1.17.1.13` | `exact/tag` |
|
||||
| `12.4` | `21F2081`<br>`21F2092`<br>`21F79` | `15.5` | `613.2.7.1.8` | `WebKit-7613.2.7.1.8` | `exact/tag` |
|
||||
| `12.5` | `21G72` | `15.6` | `613.3.9.1.5` | `WebKit-7613.3.9.1.5` | `exact/tag` |
|
||||
| `12.5.1` | `21G83` | `15.6` | `613.3.9.*` | `WebKit-7613.3.9.*` | `train` |
|
||||
| `12.6` | `21G115` | `16` | `614.1.25.*` | `WebKit-7614.1.25.*` | `train` |
|
||||
| `12.6.1` | `21G217` | `16.1` | `614.2.9.*` | `WebKit-7614.2.9.*` | `train` |
|
||||
| `12.6.2` | `21G320` | `16.2` | `614.3.7.*` | `WebKit-7614.3.7.*` | `train` |
|
||||
| `12.6.3` | `21G419` | `16.3` | `614.4.6.*` | `WebKit-7614.4.6.*` | `train` |
|
||||
| `12.6.4` | `21G526` | `16.4` | `615.1.26.*` | `WebKit-7615.1.26.*` | `train` |
|
||||
| `12.6.5` | `21G531` | `16.4` | `615.1.26.*` | `WebKit-7615.1.26.*` | `train` |
|
||||
| `12.6.6` | `21G646` | `16.5` | `615.2.9.*` | `WebKit-7615.2.9.*` | `train` |
|
||||
| `12.6.7` | `21G651` | `16.5.1` | `615.2.9.*` | `WebKit-7615.2.9.*` | `train` |
|
||||
| `12.6.8` | `21G725` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `12.6.9` | `21G726` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `12.7` | `21G816` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `12.7.1` | `21G920` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `12.7.2` | `21G1974` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `12.7.3` | `21H1015` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `12.7.4` | `21H1123` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `12.7.5` | `21H1222` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `12.7.6` | `21H1320` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `12.5.1` | `21G83` | `15.6` | `613.3.9.*` | `WebKit-7613.3.9.*` | `❓ unconfirmed/train` |
|
||||
| `12.6` | `21G115` | `16` | `614.1.25.*` | `WebKit-7614.1.25.*` | `❓ unconfirmed/train` |
|
||||
| `12.6.1` | `21G217` | `16.1` | `614.2.9.*` | `WebKit-7614.2.9.*` | `❓ unconfirmed/train` |
|
||||
| `12.6.2` | `21G320` | `16.2` | `614.3.7.*` | `WebKit-7614.3.7.*` | `❓ unconfirmed/train` |
|
||||
| `12.6.3` | `21G419` | `16.3` | `614.4.6.*` | `WebKit-7614.4.6.*` | `❓ unconfirmed/train` |
|
||||
| `12.6.4` | `21G526` | `16.4` | `615.1.26.*` | `WebKit-7615.1.26.*` | `❓ unconfirmed/train` |
|
||||
| `12.6.5` | `21G531` | `16.4` | `615.1.26.*` | `WebKit-7615.1.26.*` | `❓ unconfirmed/train` |
|
||||
| `12.6.6` | `21G646` | `16.5` | `615.2.9.*` | `WebKit-7615.2.9.*` | `❓ unconfirmed/train` |
|
||||
| `12.6.7` | `21G651` | `16.5.1` | `615.2.9.*` | `WebKit-7615.2.9.*` | `❓ unconfirmed/train` |
|
||||
| `12.6.8` | `21G725` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `12.6.9` | `21G726` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `12.7` | `21G816` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `12.7.1` | `21G920` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `12.7.2` | `21G1974` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `12.7.3` | `21H1015` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `12.7.4` | `21H1123` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `12.7.5` | `21H1222` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `12.7.6` | `21H1320` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
|
||||
### macOS 13
|
||||
|
||||
@@ -256,8 +278,8 @@ macOS production prefixes are: 12 → `17`, 13 → `18`, 14 → `19`, 15 → `20
|
||||
| `13.7.4` | `22H420` | `16.6` | `615.3.12.11.2` | `WebKit-7615.3.12.11.2` | `exact/tag` |
|
||||
| `13.7.5` | `22H527` | `16.6` | `615.3.12.11.2` | `WebKit-7615.3.12.11.2` | `exact/tag` |
|
||||
| `13.7.6` | `22H625` | `16.6` | `615.3.12.11.2` | `WebKit-7615.3.12.11.2` | `exact/tag` |
|
||||
| `13.7.7` | `22H722` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `13.7.8` | `22H730` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `train` |
|
||||
| `13.7.7` | `22H722` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
| `13.7.8` | `22H730` | `16.6` | `615.3.12.*` | `WebKit-7615.3.12.*` | `❓ unconfirmed/train` |
|
||||
|
||||
### macOS 14
|
||||
|
||||
@@ -266,13 +288,13 @@ macOS production prefixes are: 12 → `17`, 13 → `18`, 14 → `19`, 15 → `20
|
||||
| `14.0` | `23A344` | `17` | `616.1.27.211.1` | `WebKit-7616.1.27.211.1` | `exact/tag` |
|
||||
| `14.1` | `23B2073`<br>`23B2077`<br>`23B74` | `17.1` | `616.2.9.11.7` | `WebKit-7616.2.9.11.7` | `exact/tag` |
|
||||
| `14.1.1` | `23B2082`<br>`23B81` | `17.1` | `616.2.9.11.7` | `WebKit-7616.2.9.11.7` | `exact/tag` |
|
||||
| `14.1.2` | `23B2091`<br>`23B92` | `17.1` | `616.2.9.*` | `WebKit-7616.2.9.*` | `train` |
|
||||
| `14.2` | `23C64` | `17.2` | `617.1.17.*` | `WebKit-7617.1.17.*` | `train` |
|
||||
| `14.2.1` | `23C71` | `17.2` | `617.1.17.*` | `WebKit-7617.1.17.*` | `train` |
|
||||
| `14.1.2` | `23B2091`<br>`23B92` | `17.1` | `616.2.9.*` | `WebKit-7616.2.9.*` | `❓ unconfirmed/train` |
|
||||
| `14.2` | `23C64` | `17.2` | `617.1.17.*` | `WebKit-7617.1.17.*` | `❓ unconfirmed/train` |
|
||||
| `14.2.1` | `23C71` | `17.2` | `617.1.17.*` | `WebKit-7617.1.17.*` | `❓ unconfirmed/train` |
|
||||
| `14.3` | `23D2057`<br>`23D56` | `17.3` | `617.2.4.11.8` | `WebKit-7617.2.4.11.8` | `exact/tag` |
|
||||
| `14.3.1` | `23D60` | `17.3` | `617.2.4.*` | `WebKit-7617.2.4.*` | `train` |
|
||||
| `14.3.1` | `23D60` | `17.3` | `617.2.4.*` | `WebKit-7617.2.4.*` | `❓ unconfirmed/train` |
|
||||
| `14.4` | `23E214` | `17.4` | `618.1.15.11.12` | `WebKit-7618.1.15.11.12` | `exact/tag` |
|
||||
| `14.4.1` | `23E224` | `17.4` | `618.1.15.*` | `WebKit-7618.1.15.*` | `train` |
|
||||
| `14.4.1` | `23E224` | `17.4` | `618.1.15.*` | `WebKit-7618.1.15.*` | `❓ unconfirmed/train` |
|
||||
| `14.5` | `23F79` | `17.5` | `618.2.12.11.6` | `WebKit-7618.2.12.11.6` | `exact/tag` |
|
||||
| `14.6` | `23G80` | `17.6` | `618.3.11.11.5` | `WebKit-7618.3.11.11.5` | `exact/tag` |
|
||||
| `14.6.1` | `23G93` | `17.6` | `618.3.11.11.5` | `WebKit-7618.3.11.11.5` | `exact/tag` |
|
||||
@@ -283,75 +305,75 @@ macOS production prefixes are: 12 → `17`, 13 → `18`, 14 → `19`, 15 → `20
|
||||
| `14.7.4` | `23H420` | `17.6` | `618.3.11.11.5` | `WebKit-7618.3.11.11.5` | `exact/tag` |
|
||||
| `14.7.5` | `23H527` | `17.6` | `618.3.11.11.5` | `WebKit-7618.3.11.11.5` | `exact/tag` |
|
||||
| `14.7.6` | `23H626` | `17.6` | `618.3.11.11.5` | `WebKit-7618.3.11.11.5` | `exact/tag` |
|
||||
| `14.7.7` | `23H723` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.7.8` | `23H730` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.8` | `23J21` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.8.1` | `23J30` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.8.2` | `23J126` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.8.3` | `23J220` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.8.4` | `23J319` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.8.5` | `23J423` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.8.7` | `23J520` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.8.8` | `23J620` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.8.9` | `23J631` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `train` |
|
||||
| `14.7.7` | `23H723` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `14.7.8` | `23H730` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `14.8` | `23J21` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `14.8.1` | `23J30` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `14.8.2` | `23J126` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `14.8.3` | `23J220` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `14.8.4` | `23J319` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `14.8.5` | `23J423` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `14.8.7` | `23J520` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `14.8.8` | `23J620` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `14.8.9` | `23J631` | `17.6` | `618.3.11.*` | `WebKit-7618.3.11.*` | `❓ unconfirmed/train` |
|
||||
|
||||
### macOS 15
|
||||
|
||||
| OS version | Apple build(s) | Safari | WebKit `FULL_VERSION` | Source release | Evidence |
|
||||
|---|---|---:|---:|---|---|
|
||||
| `15.0` | `24A335`<br>`24A8332` | `18` | `619.1.26.31.6` | `WebKit-7619.1.26.31.6` | `exact/tag` |
|
||||
| `15.0.1` | `24A340`<br>`24A348` | `18` | `619.1.26.*` | `WebKit-7619.1.26.*` | `train` |
|
||||
| `15.1` | `24B2082`<br>`24B2083`<br>`24B83` | `18.1` | `619.2.8.*` | `WebKit-7619.2.8.*` | `train` |
|
||||
| `15.0.1` | `24A340`<br>`24A348` | `18` | `619.1.26.*` | `WebKit-7619.1.26.*` | `❓ unconfirmed/train` |
|
||||
| `15.1` | `24B2082`<br>`24B2083`<br>`24B83` | `18.1` | `619.2.8.*` | `WebKit-7619.2.8.*` | `❓ unconfirmed/train` |
|
||||
| `15.1.1` | `24B2091`<br>`24B91` | `18.1.1` | `619.2.8.11.12` | `WebKit-7619.2.8.11.12` | `exact/tag` |
|
||||
| `15.2` | `24C101`<br>`24C103`<br>`24C2101`<br>`24C2103` | `18.2` | `620.1.16.11.8` | `WebKit-7620.1.16.11.8` | `exact/tag` |
|
||||
| `15.3` | `24D2059`<br>`24D60` | `18.3` | `620.2.4.11.5` | `WebKit-7620.2.4.11.5` | `exact/tag` |
|
||||
| `15.3.1` | `24D70` | `18.3` | `620.2.4.11.5` | `WebKit-7620.2.4.11.5` | `exact/tag` |
|
||||
| `15.3.2` | `24D2082`<br>`24D81` | `18.3` | `620.2.4.*` | `WebKit-7620.2.4.*` | `train` |
|
||||
| `15.4` | `24E248` | `18.4` | `621.1.15.*` | `WebKit-7621.1.15.*` | `train` |
|
||||
| `15.4.1` | `24E263` | `18.4` | `621.1.15.*` | `WebKit-7621.1.15.*` | `train` |
|
||||
| `15.5` | `24F74` | `18.5` | `621.2.5.*` | `WebKit-7621.2.5.*` | `train` |
|
||||
| `15.6` | `24G84` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.6.1` | `24G90` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.7` | `24G222` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.7.1` | `24G231` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.7.2` | `24G325` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.7.3` | `24G419` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.7.4` | `24G517` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.7.5` | `24G624` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.7.7` | `24G720` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.7.8` | `24G824` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.7.9` | `24G830` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.8` | `24H23` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.8.1` | `24H32` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `train` |
|
||||
| `15.3.2` | `24D2082`<br>`24D81` | `18.3` | `620.2.4.*` | `WebKit-7620.2.4.*` | `❓ unconfirmed/train` |
|
||||
| `15.4` | `24E248` | `18.4` | `621.1.15.*` | `WebKit-7621.1.15.*` | `❓ unconfirmed/train` |
|
||||
| `15.4.1` | `24E263` | `18.4` | `621.1.15.*` | `WebKit-7621.1.15.*` | `❓ unconfirmed/train` |
|
||||
| `15.5` | `24F74` | `18.5` | `621.2.5.*` | `WebKit-7621.2.5.*` | `❓ unconfirmed/train` |
|
||||
| `15.6` | `24G84` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.6.1` | `24G90` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.7` | `24G222` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.7.1` | `24G231` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.7.2` | `24G325` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.7.3` | `24G419` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.7.4` | `24G517` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.7.5` | `24G624` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.7.7` | `24G720` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.7.8` | `24G824` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.7.9` | `24G830` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.8` | `24H23` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
| `15.8.1` | `24H32` | `18.6` | `621.3.11.*` | `WebKit-7621.3.11.*` | `❓ unconfirmed/train` |
|
||||
|
||||
### macOS 26
|
||||
|
||||
| OS version | Apple build(s) | Safari | WebKit `FULL_VERSION` | Source release | Evidence |
|
||||
|---|---|---:|---:|---|---|
|
||||
| `26.0` | `25A354`<br>`25A8353` | `26` | `622.1.22.*` | `WebKit-7622.1.22.*` | `train` |
|
||||
| `26.0.1` | `25A362`<br>`25A8364` | `26` | `622.1.22.*` | `WebKit-7622.1.22.*` | `train` |
|
||||
| `26.1` | `25B78` | `26.1` | `622.2.11.*` | `WebKit-7622.2.11.*` | `train` |
|
||||
| `26.2` | `25C2058`<br>`25C56` | `26.2` | `623.1.14.*` | `WebKit-7623.1.14.*` | `train` |
|
||||
| `26.3` | `25D125`<br>`25D2125` | `26.3` | `623.2.7.*` | `WebKit-7623.2.7.*` | `train` |
|
||||
| `26.3.1` | `25D2128` | `26.3` | `623.2.7.*` | `WebKit-7623.2.7.*` | `train` |
|
||||
| `26.3.2` | `25D2140`<br>`25D2150` | `26.3` | `623.2.7.*` | `WebKit-7623.2.7.*` | `train` |
|
||||
| `26.4` | `25E246` | `26.4` | `624.1.16.*` | `WebKit-7624.1.16.*` | `train` |
|
||||
| `26.4.1` | `25E253` | `26.4` | `624.1.16.*` | `WebKit-7624.1.16.*` | `train` |
|
||||
| `26.5` | `25F71` | `26.5` | `624.2.5.*` | `WebKit-7624.2.5.*` | `train` |
|
||||
| `26.5.1` | `25F80` | `26.5` | `624.2.5.*` | `WebKit-7624.2.5.*` | `train` |
|
||||
| `26.5.2` | `25F84` | `26.5` | `624.2.5.11.8` | `WebKit-7624.2.5.11.8 (candidate; tag not public)` | `exact/binary` |
|
||||
| `26.6` | `25G72` | `26.6` | `624.4.5.11.5` | `WebKit-7624.4.5.11.5 (candidate; tag not public)` | `exact/binary` |
|
||||
| `26.6.1` | `25G76` | `26.6` | `624.4.5.11.5` | `WebKit-7624.4.5.11.5 (candidate; tag not public)` | `exact/binary` |
|
||||
| `26.0` | `25A354`<br>`25A8353` | `26` | `622.1.22.*` | `WebKit-7622.1.22.*` | `❓ unconfirmed/train` |
|
||||
| `26.0.1` | `25A362`<br>`25A8364` | `26` | `622.1.22.*` | `WebKit-7622.1.22.*` | `❓ unconfirmed/train` |
|
||||
| `26.1` | `25B78` | `26.1` | `622.2.11.*` | `WebKit-7622.2.11.*` | `❓ unconfirmed/train` |
|
||||
| `26.2` | `25C2058`<br>`25C56` | `26.2` | `623.1.14.*` | `WebKit-7623.1.14.*` | `❓ unconfirmed/train` |
|
||||
| `26.3` | `25D125`<br>`25D2125` | `26.3` | `623.2.7.*` | `WebKit-7623.2.7.*` | `❓ unconfirmed/train` |
|
||||
| `26.3.1` | `25D2128` | `26.3` | `623.2.7.*` | `WebKit-7623.2.7.*` | `❓ unconfirmed/train` |
|
||||
| `26.3.2` | `25D2140`<br>`25D2150` | `26.3` | `623.2.7.*` | `WebKit-7623.2.7.*` | `❓ unconfirmed/train` |
|
||||
| `26.4` | `25E246` | `26.4` | `624.1.16.*` | `WebKit-7624.1.16.*` | `❓ unconfirmed/train` |
|
||||
| `26.4.1` | `25E253` | `26.4` | `624.1.16.*` | `WebKit-7624.1.16.*` | `❓ unconfirmed/train` |
|
||||
| `26.5` | `25F71` | `26.5` | `624.2.5.*` | `WebKit-7624.2.5.*` | `❓ unconfirmed/train` |
|
||||
| `26.5.1` | `25F80` | `26.5` | `624.2.5.*` | `WebKit-7624.2.5.*` | `❓ unconfirmed/train` |
|
||||
| `26.5.2` | `25F84` | `26.5` | `624.2.5.11.8` | `❓ WebKit-7624.2.5.11.8 (inferred; tag not public)` | `exact/binary` |
|
||||
| `26.6` | `25G72` | `26.6` | `624.4.5.11.5` | `❓ WebKit-7624.4.5.11.5 (inferred; tag not public)` | `exact/binary` |
|
||||
| `26.6.1` | `25G76` | `26.6` | `624.4.5.11.5` | `❓ WebKit-7624.4.5.11.5 (inferred; tag not public)` | `exact/binary` |
|
||||
| `26.6.2` | `25G83` | `26.6` | `624.5.1.11.3` | `WebKit-7624.5.1.11.3` | `exact/binary` |
|
||||
| `26.7` | `25G229` | `26.6` | `624.5.1.*` | `WebKit-7624.5.1.*` | `train` |
|
||||
| `26.7.1` | `25G241` | `26.6` | `624.5.1.*` | `WebKit-7624.5.1.*` | `train` |
|
||||
| `26.7` | `25G229` | `26.6` | `624.5.1.*` | `WebKit-7624.5.1.*` | `❓ unconfirmed/train` |
|
||||
| `26.7.1` | `25G241` | `26.6` | `624.5.1.*` | `WebKit-7624.5.1.*` | `❓ unconfirmed/train` |
|
||||
|
||||
### macOS 27
|
||||
|
||||
| OS version | Apple build(s) | Safari | WebKit `FULL_VERSION` | Source release | Evidence |
|
||||
|---|---|---:|---:|---|---|
|
||||
| `27.0` | `26A425`<br>`26A428` | `27` | `625.1.29.*` | `WebKit-7625.1.29.*` | `train` |
|
||||
| `27.0.1` | `26A434` | `27` | `625.1.29.11.28` | `WebKit-7625.1.29.11.28 (candidate; tag not public)` | `exact/binary` |
|
||||
| `27.0` | `26A425`<br>`26A428` | `27` | `625.1.29.*` | `WebKit-7625.1.29.*` | `❓ unconfirmed/train` |
|
||||
| `27.0.1` | `26A434` | `27` | `625.1.29.11.28` | `❓ WebKit-7625.1.29.11.28 (inferred; tag not public)` | `exact/binary` |
|
||||
|
||||
|
||||
## Binary mappings verified in Ravel
|
||||
@@ -381,38 +403,14 @@ Ravel exposes the binary UUID for these iOS dyld caches, but not the framework `
|
||||
|
||||
## Current 27.2 beta builds
|
||||
|
||||
| Platform | OS build | WebKit UUID | `FULL_VERSION` | Evidence |
|
||||
|---|---|---|---:|---|
|
||||
| macOS 27.2 beta | `26B5086k` | `6F6AB57E-1492-3950-9962-85B6AFD430A3` | `625.2.4.1` | Ravel binary |
|
||||
| macOS 27.2 beta 2 | `26B5091g` | `56B4AA44-CB66-3641-8B22-723C39B5BC6E` | `625.2.5.11.1` | Ravel binary |
|
||||
| macOS 27.2 beta 3 | `26B5101f` | `B32D7081-AE42-3A2E-ACBB-CF4D4BE4F296` | `625.2.7.1` | Ravel binary |
|
||||
| iOS 27.2 beta | `24B5084k` | `1FD67A57-D91B-3B26-9F4F-91AB8299B6E7` | unknown | UUID only |
|
||||
| iOS 27.2 beta 2 | `24B5089g` | `509D51AD-2CF9-3982-BFD5-81221D1B903D` | unknown | UUID only |
|
||||
| iOS 27.2 beta 3 | `24B5099f` | `0566BF55-2DC4-34F6-B211-96FFAA0A37A4` | unknown | UUID only |
|
||||
|
||||
## Exact lookup procedure
|
||||
|
||||
1. Read the OS build and WebKit image UUID from the crash report.
|
||||
2. Open that build in Ravel and verify the same UUID and architecture.
|
||||
3. Read `CFBundleVersion` from `Bundle(for: WKWebView.self)`.
|
||||
4. Remove the platform prefix to obtain `FULL_VERSION`.
|
||||
5. Resolve the source tag and inspect the released code.
|
||||
|
||||
```swift
|
||||
import WebKit
|
||||
|
||||
let webKitBundleVersion = Bundle(for: WKWebView.self)
|
||||
.object(forInfoDictionaryKey: "CFBundleVersion") as? String
|
||||
```
|
||||
|
||||
Ravel paths:
|
||||
|
||||
```text
|
||||
macOS: /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit
|
||||
iOS: /System/Library/Frameworks/WebKit.framework/WebKit
|
||||
```
|
||||
|
||||
Modern source tags use `WebKit-7<FULL_VERSION>`. The 612 and early 613 trains use `Safari-<FULL_VERSION>`.
|
||||
| Platform | OS build | WebKit UUID | `FULL_VERSION` | Binary evidence | Source/API status |
|
||||
|---|---|---|---:|---|---|
|
||||
| macOS 27.2 beta | `26B5086k` | `6F6AB57E-1492-3950-9962-85B6AFD430A3` | `625.2.4.1` | `exact/binary` | `❓ unconfirmed — public source tag unavailable` |
|
||||
| macOS 27.2 beta 2 | `26B5091g` | `56B4AA44-CB66-3641-8B22-723C39B5BC6E` | `625.2.5.11.1` | `exact/binary` | `❓ unconfirmed — public source tag unavailable` |
|
||||
| macOS 27.2 beta 3 | `26B5101f` | `B32D7081-AE42-3A2E-ACBB-CF4D4BE4F296` | `625.2.7.1` | `exact/binary` | `❓ unconfirmed — public source tag unavailable` |
|
||||
| iOS 27.2 beta | `24B5084k` | `1FD67A57-D91B-3B26-9F4F-91AB8299B6E7` | unknown | UUID only | `❓ unconfirmed` |
|
||||
| iOS 27.2 beta 2 | `24B5089g` | `509D51AD-2CF9-3982-BFD5-81221D1B903D` | unknown | UUID only | `❓ unconfirmed` |
|
||||
| iOS 27.2 beta 3 | `24B5099f` | `0566BF55-2DC4-34F6-B211-96FFAA0A37A4` | unknown | UUID only | `❓ unconfirmed` |
|
||||
|
||||
## Current certificate-info crash
|
||||
|
||||
@@ -422,10 +420,10 @@ Modern source tags use `WebKit-7<FULL_VERSION>`. The 612 and early 613 trains us
|
||||
| Crash/Ravel UUID | `70BEE322-37EE-3B22-8012-4F76BA105C29` |
|
||||
| `CFBundleVersion` | `22625.1.29.11.28` |
|
||||
| `FULL_VERSION` | `625.1.29.11.28` |
|
||||
| Candidate source tag | `WebKit-7625.1.29.11.28` — not public as of 2026-10-06 |
|
||||
| Candidate source tag | `❓ WebKit-7625.1.29.11.28` — inferred; not public as of 2026-10-06 |
|
||||
| Result | The shipped binary has the old one-argument `commitCertificateInfo` ABI; the fix is absent. |
|
||||
|
||||
The fix landed in `318982@main`. macOS 27.2 is a candidate for the first fixed system release, but public `WebKit-7625.2.*` source tags are not available yet.
|
||||
The fix landed in `318982@main`. **❓ Unconfirmed:** macOS 27.2 is only a candidate for the first fixed system release; public `WebKit-7625.2.*` source tags are not available yet.
|
||||
|
||||
## Data sources and maintenance
|
||||
|
||||
@@ -437,4 +435,4 @@ The fix landed in `318982@main`. macOS 27.2 is a candidate for the first fixed s
|
||||
- [WebKit commit 318982@main](https://commits.webkit.org/318982@main)
|
||||
- DuckDuckGo Apple browsers deployment targets: `macOS/Configuration/Common.xcconfig` and `iOS/DuckDuckGo-iOS.xcodeproj/project.pbxproj`
|
||||
|
||||
To update this document, add new stable OS rows first. Use an OS-specific `releases/Apple/Safari-…` tag when available; otherwise record only the release train and keep the `.*` marker.
|
||||
Follow **Research and table-update procedure** for every new stable or beta row.
|
||||
Reference in new issue
Block a user