diff --git a/AltStore/Operations/VerifyAppOperation.swift b/AltStore/Operations/VerifyAppOperation.swift
index ca44334d..db18d586 100644
--- a/AltStore/Operations/VerifyAppOperation.swift
+++ b/AltStore/Operations/VerifyAppOperation.swift
@@ -129,9 +129,13 @@ private extension VerifyAppOperation
{
let (version, buildVersion) = await $appVersion.perform { ($0.version, $0.buildVersion) }
- let downloadedIpaRevision = Bundle.init(url: app.fileURL)!.object(forInfoDictionaryKey: "BuildRevision") as? String ?? ""
-
- guard version == app.version else { throw VerificationError.mismatchedVersion(app.version, expectedVersion: version, app: app) }
+ let downloadedIpaRevision = Bundle(url: app.fileURL)!.object(forInfoDictionaryKey: "BuildRevision") as? String ?? ""
+ let sourceJsonIpaRevision = appVersion.revision
+
+ // if not beta but version matches, then accept it, else compare revisions between source and downloaded
+ if version != app.version || (appVersion.isBeta && downloadedIpaRevision != sourceJsonIpaRevision) {
+ throw VerificationError.mismatchedVersion(app.version, expectedVersion: version, app: app)
+ }
if let buildVersion
{
diff --git a/AltStoreCore/Model/AltStore.xcdatamodeld/AltStore 17.xcdatamodel/contents b/AltStoreCore/Model/AltStore.xcdatamodeld/AltStore 17.xcdatamodel/contents
index 65d011fe..7b4dbf97 100644
--- a/AltStoreCore/Model/AltStore.xcdatamodeld/AltStore 17.xcdatamodel/contents
+++ b/AltStoreCore/Model/AltStore.xcdatamodeld/AltStore 17.xcdatamodel/contents
@@ -64,6 +64,7 @@
+
diff --git a/AltStoreCore/Model/AppVersion.swift b/AltStoreCore/Model/AppVersion.swift
index 74e5e6b2..b6a8c2b9 100644
--- a/AltStoreCore/Model/AppVersion.swift
+++ b/AltStoreCore/Model/AppVersion.swift
@@ -98,8 +98,8 @@ public class AppVersion: NSManagedObject, Decodable, Fetchable
self._minOSVersion = try container.decodeIfPresent(String.self, forKey: .minOSVersion)
self._maxOSVersion = try container.decodeIfPresent(String.self, forKey: .maxOSVersion)
-// self.isBeta = try container.decodeIfPresent(Bool.self, forKey: .isBeta) ?? false
-// self.revision = try container.decodeIfPresent(String.self, forKey: .revision)
+ self.isBeta = try container.decodeIfPresent(Bool.self, forKey: .isBeta) ?? false
+ self.revision = try container.decodeIfPresent(String.self, forKey: .revision)
}
catch
{