* [Shared] Revises ALTLocalizedError protocol
* Refactors errors to conform to revised ALTLocalizedError protocol
* [Missing Commit] Remaining changes for ALTLocalizedError
* [AltServer] Refactors errors to conform to revised ALTLocalizedError protocol
* [Missing Commit] Declares ALTLocalizedTitleErrorKey + ALTLocalizedDescriptionKey
* Updates Objective-C errors to match revised ALTLocalizedError
* [Missing Commit] Unnecessary ALTLocalizedDescription logic
* [Shared] Refactors NSError.withLocalizedFailure to properly support ALTLocalizedError
* [Shared] Supports adding localized titles to errors via NSError.withLocalizedTitle()
* Revises ErrorResponse logic to support arbitrary errors and user info values
* [Missed Commit] Renames CodableServerError to CodableError
* Merges ConnectionError into OperationError
* [Missed Commit] Doesn’t check ALTWrappedError’s userInfo for localizedDescription
* [Missed] Fixes incorrect errorDomain for ALTErrorEnums
* [Missed] Removes nonexistent ALTWrappedError.h
* Includes source file and line number in OperationError.unknown failureReason
* Adds localizedTitle to AppManager operation errors
* Fixes adding localizedTitle + localizedFailure to ALTWrappedError
* Updates ToastView to use error’s localizedTitle as title
* [Shared] Adds NSError.formattedDetailedDescription(with:)
Returns formatted NSAttributedString containing all user info values intended for displaying to the user.
* [Shared] Updates Error.localizedErrorCode to say “code” instead of “error”
* Conforms ALTLocalizedError to CustomStringConvertible
* Adds “View More Details” option to Error Log context menu to view detailed error description
* [Shared] Fixes NSError.formattedDetailedDescription appearing black in dark mode
* [AltServer] Updates error alert to match revised error logic
Uses error’s localizedTitle as alert title.
* [AltServer] Adds “View More Details” button to error alert to view detailed error info
* [AltServer] Renames InstallError to OperationError and conforms to ALTErrorEnum
* [Shared] Removes CodableError support for Date user info values
Not currently used, and we don’t want to accidentally parse a non-Date as a Date in the meantime.
* [Shared] Includes dynamic UserInfoValueProvider values in NSError.formattedDetailedDescription()
* [Shared] Includes source file + line in NSError.formattedDetailedDescription()
Automatically captures source file + line when throwing ALTErrorEnums.
* [Shared] Captures source file + line for unknown errors
* Removes sourceFunction from OperationError
* Adds localizedTitle to AuthenticationViewController errors
* [Shared] Moves nested ALTWrappedError logic to ALTWrappedError initializer
* [AltServer] Removes now-redundant localized failure from JIT errors
All JIT errors now have a localizedTitle which effectively says the same thing.
* Makes OperationError.Code start at 1000
“Connection errors” subsection starts at 1200.
* [Shared] Updates Error domains to revised [Source].[ErrorType] format
* Updates ALTWrappedError.localizedDescription to prioritize using wrapped NSLocalizedDescription as failure reason
* Makes ALTAppleAPIError codes start at 3000
* [AltServer] Adds relevant localizedFailures to ALTDeviceManager.installApplication() errors
* Revises OperationError failureReasons and recovery suggestions
All failure reasons now read correctly when preceded by a failure reason and “because”.
* Revises ALTServerError error messages
All failure reasons now read correctly when preceded by a failure reason and “because”.
* Most failure reasons now read correctly when preceded by a failure reason and “because”.
* ALTServerErrorUnderlyingError forwards all user info provider calls to underlying error.
* Revises error messages for ALTAppleAPIErrorIncorrectCredentials
* [Missed] Removes NSError+AltStore.swift from AltStore target
* [Shared] Updates AltServerErrorDomain to revised [Source].[ErrorType] format
* [Shared] Removes “code” from Error.localizedErrorCode
* [Shared] Makes ALTServerError codes (appear to) start at 2000
We can’t change the actual error codes without breaking backwards compatibility, so instead we just add 2000 whenever we display ALTServerError codes to the user.
* Moves VerificationError.errorFailure to VerifyAppOperation
* Supports custom failure reason for OperationError.unknown
* [Shared] Changes AltServerErrorDomain to “AltServer.ServerError”
* [Shared] Converts ALTWrappedError to Objective-C class
NSError subclasses must be written in ObjC for Swift.Error <-> NSError bridging to work correctly.
* Fixes decoding CodableError nested user info values
* Fix AppExtensions not being updated on Disk after db is updated in InstallAppOperation
* refresh-Extensions: Added check to ensure extensions in DB and DISK matches if not then cancel current refresh request
* Change error from Swift.Error to NSError
* Adds ResultOperation.localizedFailure
* Finish Riley's monster commit
3b38d725d7
May the Gods have mercy on my soul.
* Fix format strings I broke
* Include "Enable JIT" errors in Error Log
* Fix minimuxer status checking
* [skip ci] Update the no wifi message to include VPN
* Opens Error Log when tapping ToastView
* Fixes Error Log context menu covering cell content
* Fixes Error Log context menu appearing while scrolling
* Fixes incorrect Search FAQ URL
* Fix Error Log showing UIAlertController on iOS 14+
* Fix Error Log not showing UIAlertController on iOS <=13
* Fix wrong color in AuthenticationViewController
* Fix typo
* Fixes logging non-AltServerErrors as AltServerError.underlyingError
* Limits quitting other AltStore/SideStore processes to database migrations
* Skips logging cancelled errors
* Replaces StoreApp.latestVersion with latestSupportedVersion + latestAvailableVersion
We now store the latest supported version as a relationship on StoreApp, rather than the latest available version. This allows us to reference the latest supported version in predicates and sort descriptors.
However, we kept the underlying Core Data property name the same to avoid extra migration.
* Conforms OperatingSystemVersion to Comparable
* Parses AppVersion.minOSVersion/maxOSVersion from source JSON
* Supports non-NSManagedObjects for @Managed properties
This allows us to use @Managed with properties that may or may not be NSManagedObjects at runtime (e.g. protocols). If they are, Managed will keep strong reference to context like before.
* Supports optional @Managed properties
* Conforms AppVersion to AppProtocol
* Verifies min/max OS version before downloading app + asks user to download older app version if necessary
* Improves error message when file does not exist at AppVersion.downloadURL
* Removes unnecessary StoreApp convenience properties
* Removes unnecessary StoreApp convenience properties as well as fix other issues
* Remove Settings bundle, add SwiftUI view instead
Fix refresh all shortcut intent
* Update AuthenticationOperation.swift
Signed-off-by: June Park <rjp2030@outlook.com>
* Fix build issues given by develop
* Add availability check to fix CI build(?)
* If it's gonna be that way...
---------
Signed-off-by: June Park <rjp2030@outlook.com>
Co-authored-by: nythepegasus <nythepegasus84@gmail.com>
Co-authored-by: Riley Testut <riley@rileytestut.com>
Co-authored-by: ny <me@nythepegas.us>
This removes all background refresh notifications but keeps the "Reminder to open SideStore every so often", and the "x app expires soon" local push notifications.
Xcode 13 and earlier allowed us to mark lazy stored properties with @available, but it turns out this was never actually supported. Xcode 14 now throws a compiler error, so we work around it by converting lazy @available properties into computed properties, backed by typed-erased lazy ivars.
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.
Previously, only the beta version of AltStore could add sources. Now, the public version supports adding explicitly “trusted” sources, while the beta version can continue to add any source.
If a jailbreak app contains the relevant Fugu14 entries in its Info.plist, AltStore will automatically guide the user through the Fugu14 untether process before installing the jailbreak.
When attempting to install a new app without any active slots available, AltStore will now present an alert asking the user to choose an app to deactivate in order to continue installation — just like when activating an app without an active slot.
729b2a1f made all serial operations execute in FIFO order. This caused circular dependencies between BackupAppOperation and InstallAppOperation, resulting in (de-)activating apps never finishing.
Now, we ensure InstallAppOperations that are reinstalling AltStore always execute last in a context, but other serial operations may run in any order they become ready.
Ensures AltStore is always the last app to be refreshed, which matters when AltStore needs to be resigned and reinstalled (such as when using AltDaemon on iOS 14).