Commit Graph

30 Commits

Author SHA1 Message Date
Riley Testut
093b565b3b Randomizes featured source + app order at app launch 2023-12-08 15:15:10 -06:00
Riley Testut
2681cc3a8e [AltStoreCore] Adds StoreApp.category + StoreCategory enum 2023-12-08 14:04:36 -06:00
Riley Testut
d59ced9208 [AltStoreCore] Adds Pledge, PledgeReward, and PledgeTier
Allows us to cache pledges for current user, which can be used to determine if user has access to Patreon-only apps.
2023-12-01 16:49:56 -06:00
Riley Testut
417837049f [AltStoreCore] Updates StoreApp to support Patreon-exclusive apps 2023-12-01 16:49:56 -06:00
Riley Testut
d2c66d4f3b [AltStoreCore] Migrates Core Data model from v13 to v14 2023-10-19 18:38:30 -05:00
Riley Testut
cd67222237 Supports both iPhone + iPad screenshots
Prefers showing screenshots for current device, but falls back to all screenshots if there are no relevant ones.
2023-10-19 16:24:56 -05:00
Riley Testut
26a05d323f [AltStoreCore] Adds AppScreenshot to support dynamically-sized screenshots
Preserves StoreApp.imageURL field in database model for backwards compatibility.
2023-10-11 15:05:27 -05:00
Riley Testut
d7bbf78b6b [AltStoreCore] Fixes incorrectly merging permissions for same app from different sources 2023-05-30 15:28:49 -05:00
Riley Testut
3efee63d41 [AltStoreCore] Makes AppPermission.usageDescription non-optional for backwards compatibility
Necessary to support switching between AltStore beta and public version.

Wraps private non-optional _usageDescription value in public accessor with optional return type to still treat it as “optional” value.
2023-05-30 14:24:35 -05:00
Riley Testut
c3721ba209 [AltStoreCore] Migrates Core Data model from v12 to v13 2023-05-29 16:50:17 -05:00
Riley Testut
89a4f8369b Refactors app version comparison logic to always include buildVersion
Before, whether or not the source included the buildVersion affected the comparison. If present, the buildVersion was used in comparison, if not, only the version itself was used for comparsion.

This meant it was impossible to update from a version with a buildVersion to the same version without one (e.g. going from betas to final releases). Now we _always_ consider the buildVersion in the comparsion, so an earlier entry in versions array without buildVersion can be considered “newer” even if versions match.
2023-05-29 16:50:17 -05:00
Riley Testut
e97e48ba13 Supports app versions with explicit build versions
AltStore will now consider an update available if either:

* The source’s marketing version doesn’t match installed app’s version
* The source declares a build version AND it doesn’t match the install app’s build version

The installed app matches an app version if both maketing versions match, and the build versions match (if provided by the source).
2023-05-18 15:48:17 -05:00
Riley Testut
45ed24bfb5 Verifies downloaded app’s permissions match source
Renames source JSON permissions key to “appPermissions” in order to preserve backwards compatibility, since we’ve changed the schema for permissions.
2023-05-12 18:26:24 -05:00
Riley Testut
ad41024bcb Verifies downloaded app’s SHA-256 checksum (if specified) 2023-05-11 18:57:53 -05:00
Riley Testut
bd5c942c43 [AltStoreCore] Migrates Core Data model from v11 to v12 2023-04-04 17:59:52 -05:00
Riley Testut
6edd92da78 [AltStoreCore] Supports additional source JSON values for detailed “About” page 2023-04-04 14:19:49 -05:00
Riley Testut
f94fe63b60 [AltStoreCore] Fixes Core Data “Using nil or insecure value transformer” warnings 2023-03-01 16:38:49 -06:00
Riley Testut
bcea3359ef Migrates Core Data model from v10 to v11 2022-09-13 14:46:03 -07:00
Riley Testut
33674397b1 Adds AppVersion Core Data entity
Preserves redundant fields on StoreApp in database model for backwards compatibility.
2022-09-12 15:42:33 -07:00
Riley Testut
00439fe292 Adds LoggedError Core Data entity
Allows us to save certain errors to disk so that they can be viewed again later from an error log.
2022-09-08 16:15:16 -05:00
Riley Testut
6b6f016189 Migrates Core Data model from v9 to v10 2022-04-18 16:01:48 -07:00
Riley Testut
dfd49de8d1 Replaces PatreonAccount.isFriendZone with ManagedPatron
Rather than store both the current user’s Patreon account and all cached Friend Zone patrons in the same table, we now store Friend Zone patrons in the new ManagedPatron table. This avoids the need to distinguish between the two at runtime.
2022-04-18 15:46:35 -07:00
Riley Testut
aa8dd80e54 Adds (Managed)Patron Core Data entity
Will be used to cache Friend Zone patrons separately than the existing PatreonAccount entity.
2022-04-18 15:25:27 -07:00
Riley Testut
07daff261a Caches Friend Zone patrons to offset slow loading time
The Patreon API doesn’t have a way to fetch just the patrons belonging to our Friend Zone tier. Instead, we need to fetch ALL patrons (including inactive ones) and filter out those not in the tier. This is very inefficient, and takes over a minute to complete as of April 14, 2022, due to the number of patrons we have.

We can’t do much to change this, but AltStore will now at least cache the fetched patrons with Core Data. Additionally, AltStore will only perform this long fetch whenever the Friend Zone list actually changes, rather than every time the Patreon screen appears.
2022-04-14 17:56:36 -07:00
Riley Testut
8b01a8d67c Migrates from Core Data model v8 to v9 2020-10-01 14:14:17 -07:00
Riley Testut
546db3fa23 Adds ability to change sideloaded app icons 2020-10-01 14:09:45 -07:00
Riley Testut
12f33c355a Adds InstalledApp.needsResign
When true, app will be resigned + reinstalled next refresh rather than just refreshing provisioning profiles.
2020-10-01 11:52:26 -07:00
Riley Testut
fb9b1a5c7d Adds new Core Data model v8
No need for explicit migration/mapping model (yet) because we only added a transient property.
2020-09-08 13:28:59 -07:00
Riley Testut
e70c51e36c Updates UI when refreshing apps with Siri 2020-09-08 13:12:40 -07:00
Riley Testut
f1a39e1a1f [AltStoreCore] Refactors core AltStore logic into AltStoreCore framework
AltStoreCore will contain all shared AltStore code between AltStore and any app extensions. Initially, it includes all AltStore model logic.
2020-09-03 16:39:08 -07:00