Commit Graph

378 Commits

Author SHA1 Message Date
Riley Testut
a49e16f591 Supports both iPhone + iPad screenshots
Prefers showing screenshots for current device, but falls back to all screenshots if there are no relevant ones.
2024-12-26 21:15:29 +05:30
Riley Testut
c15459e313 Supports viewing full screen app screenshots from AppViewController
[Missed] Uses layout config for PreviewAppScreenshots
2024-12-26 21:15:29 +05:30
Riley Testut
86ec59d204 Accurately displays dynamically-sized screenshots in AppViewController 2024-12-26 21:15:29 +05:30
Riley Testut
6fc9ad010d [AltStoreCore] Updates DatabaseManager to support #Preview macro
Synchronously loads database via startForPreview(), and also erases database for DEBUG builds.
2024-12-26 21:15:29 +05:30
Riley Testut
932e66deca [AltStoreCore] Adds AppScreenshot to support dynamically-sized screenshots
Preserves StoreApp.imageURL field in database model for backwards compatibility.
2024-12-26 21:15:29 +05:30
Riley Testut
d7384cfae9 [AltStoreCore] Generates Source.identifier from sourceURL 2024-12-26 21:15:29 +05:30
Riley Testut
e33a40ecb1 [AltStoreCore] Fixes ALTAppPrivacyPermission.synthesizedName for legacy permissions 2024-12-26 21:15:29 +05:30
Riley Testut
34c503da4b Revises appPermissions JSON format
• Split into `entitlements` and `privacy` sections
• `entitlements` is an array of entitlement keys
• `privacy` is a dictionary mapping UsageDescription keys to their descriptions
2024-12-26 21:15:29 +05:30
Riley Testut
98125e93aa Adds AddSourceViewController to add sources by URL or from list of recommended sources 2024-12-26 21:15:29 +05:30
Riley Testut
b03b7bfe68 Refactors SourceViewController into dedicated tab
* Updates UI to use source icons + tint colors
* Adds Edit button + swipe actions
2024-12-26 21:15:29 +05:30
Riley Testut
d53e36633d [AltStoreCore] Adds Source.isRecommended
Also replaces legacy “Trusted Sources” references with “Recommended Sources”
2024-12-26 21:15:29 +05:30
Riley Testut
9ddc27f6ca [AltStoreCore] Updates DatabaseManager to support #Preview macro
Synchronously loads database via startForPreview(), and also erases database for DEBUG builds.
2024-12-26 21:15:29 +05:30
Riley Testut
93b6da4855 Logs sideloading-related events with OSLog 2024-12-26 21:15:29 +05:30
Riley Testut
6adf55b4b6 [Apps] Moves source JSON files to separate repo 2024-12-26 21:15:29 +05:30
Riley Testut
4da8316c12 Updates app version to 2.0b4 (12) 2024-12-26 21:15:29 +05:30
Riley Testut
81c3825c92 [AltServer] Updates app version to 1.7 (78) 2024-12-26 21:15:29 +05:30
Riley Testut
3df1297b1c [AltServer] Updates app version to 1.7rc (77) 2024-12-26 21:15:29 +05:30
Riley Testut
9a6272f8e0 [AltServer] Moves AnisetteDataManager to “Anisette Data” group 2024-12-26 21:15:29 +05:30
Riley Testut
07b1750a9c [AltServer] Fetches anisette data without Mail plug-in
Works on all macOS versions supported by AltServer.
2024-12-26 21:15:29 +05:30
Riley Testut
9cf61bd4df Updates app version to 2.0b3 2024-12-26 21:15:29 +05:30
Riley Testut
fa01fa708e [AltServer] Updates app version to 1.7b1 2024-12-26 21:15:29 +05:30
Riley Testut
80fc8e7a1e [AltJIT] Changes AltSign-Dynamic to not be embedded
Fixes “Cycle in dependencies” compiler error when archiving AltServer.
2024-12-26 21:15:29 +05:30
Riley Testut
f39ebfb905 [AltServer] Fixes exporting AltServer as generic Xcode archive 2024-12-26 21:15:29 +05:30
Riley Testut
00423bec08 [AltJIT] Fixes “AltSign-Dynamic not found” runtime error at launch 2024-12-26 21:15:29 +05:30
Riley Testut
46bd977371 [AltServer] Supports enabling JIT on devices running iOS 17
AltServer embeds the AltJIT CLI tool in its app bundle and runs it as an admin subprocess.
2024-12-26 21:15:29 +05:30
Riley Testut
4410775aec [AltJIT] Removes unnecessary ALTErrorKeys.h/.m
Was originally added because AltJIT couldn’t link with AltSign, which is not true anymore.
2024-12-26 21:15:29 +05:30
Riley Testut
a7b28d5027 [AltJIT] Adds AltJIT CLI tool to enable JIT on devices running iOS 17+
Commands:

altjit enable [app/pid] --udid [udid]
* Enables JIT for given app/process

altjit mount --udid [udid]
* Mounts personalized developer disk
2024-12-26 21:15:29 +05:30
Riley Testut
2aaa7761fc [AltWidget] Refactors previous widgets to use AppsTimelineProvider 2024-12-26 21:15:29 +05:30
Riley Testut
ea2600aba9 [AltWidget] Adds interactive Active Apps widget to view + refresh all active apps (iOS 17+) 2024-12-26 21:15:29 +05:30
Riley Testut
3f6688523a [AltWidget] Refactors widgets into separate files 2024-12-26 21:15:29 +05:30
Riley Testut
641c716d57 [AltWidget] Supports refreshing apps directly from home screen 2024-12-26 21:15:29 +05:30
Riley Testut
693969dc28 [AltWidget] Adopts containerBackground(for:) on iOS 17 2024-12-26 21:15:29 +05:30
Riley Testut
7747994c80 Converts legacy RefreshAllIntent into App Shortcut (iOS 17+) 2024-12-26 21:15:29 +05:30
Riley Testut
a7d52db453 Updates build version to 6 2024-12-26 21:15:29 +05:30
Riley Testut
be8bf44784 [AltStoreCore] Updates AltStore12ToAltStore13 mapping model for latest model changes
* Non-optional AppPermission.usageDescription
* Non-optional AppPermission.appBundleID
* Added AppPermission.sourceID
2024-12-26 21:15:29 +05:30
Riley Testut
5161c506f0 Updates build version to 4 2024-12-26 21:15:29 +05:30
Riley Testut
fa2689454b Updates app version to 2.0b2 2024-12-26 21:15:29 +05:30
Riley Testut
a38eba8449 [AltStoreCore] Migrates Core Data model from v12 to v13 2024-12-26 21:15:29 +05:30
Riley Testut
f9bd65a1b5 [AltStoreCore] Adds Permissions.plist with definitions for most known permissions
Simpler to update over time as a separate plist rather than in source code.
2024-12-26 21:15:29 +05:30
Riley Testut
a3c373108d Redesigns store page permissions UI to show all entitlements and privacy permissions 2024-12-26 21:15:29 +05:30
Riley Testut
5a2f32704c Updates SourceError.blocked recovery suggestion to list installed/blocked apps
If source is already added, the error message will list all installed apps from the source.

If adding source for first time, the error message will mention exactly which apps have been blocked from the source (if provided).
2024-12-26 21:15:29 +05:30
Riley Testut
177d453491 [AltStoreCore] Backports iOS 15+ NSManagedObjectContext.performAndWait<T>()
Simplifies returning values and throwing errors from managed object contexts.
2024-12-26 21:15:29 +05:30
Riley Testut
254a9773ec Supports blocking third-party sources
Blocked sources cannot be added by new users, or updated for existing users.
2024-12-26 21:15:29 +05:30
Riley Testut
b9dd6432a1 Moves SourceError to its own source file 2024-12-26 21:15:29 +05:30
Riley Testut
ee410605e8 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.
2024-12-26 21:15:29 +05:30
Riley Testut
7ad8db7bdc Moves VerificationError to its own source file 2024-12-26 21:15:29 +05:30
Riley Testut
16c71be7f9 [AltStoreCore] Flattens optional values when @Managed/@AsyncManaged.wrappedValue is also optional 2024-12-26 21:15:29 +05:30
Riley Testut
5b275d6811 [Shared] Adds @UserInfoValue property wrapper for ALTLocalizedErrors
ALTLocalizedErrors now automatically include all properties annotated with @UserInfoValue in userInfo when bridged to NSError.
2024-12-26 21:15:29 +05:30
Riley Testut
ea506b904d Updates app version to 2.0b1 🎉 2024-12-26 21:15:29 +05:30
Riley Testut
6985d0f476 Fixes internal location of OperatingSystemVersion+Comparable in Xcode project 2024-12-26 21:15:29 +05:30