Commit Graph

259 Commits

Author SHA1 Message Date
Riley Testut
1598166c29 Updates build version to 4 2023-05-30 13:04:47 -05:00
Riley Testut
418e594c1d Updates app version to 2.0b2 2023-05-29 20:14:09 -05:00
Riley Testut
c3721ba209 [AltStoreCore] Migrates Core Data model from v12 to v13 2023-05-29 16:50:17 -05:00
Riley Testut
c1e2a28c67 [AltStoreCore] Adds Permissions.plist with definitions for most known permissions
Simpler to update over time as a separate plist rather than in source code.
2023-05-29 16:50:17 -05:00
Riley Testut
04582c72e8 Redesigns store page permissions UI to show all entitlements and privacy permissions 2023-05-29 16:47:30 -05:00
Riley Testut
fe412a07b6 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).
2023-05-16 15:44:30 -05:00
Riley Testut
6053a075f4 [AltStoreCore] Backports iOS 15+ NSManagedObjectContext.performAndWait<T>()
Simplifies returning values and throwing errors from managed object contexts.
2023-05-16 15:15:43 -05:00
Riley Testut
bfb4fac42a Supports blocking third-party sources
Blocked sources cannot be added by new users, or updated for existing users.
2023-05-15 16:27:30 -05:00
Riley Testut
0255bd7b1c Moves SourceError to its own source file 2023-05-15 15:38:54 -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
e1b7c9b64e Moves VerificationError to its own source file 2023-05-11 18:57:15 -05:00
Riley Testut
aa138b9461 [AltStoreCore] Flattens optional values when @Managed/@AsyncManaged.wrappedValue is also optional 2023-05-11 18:56:10 -05:00
Riley Testut
3d712af6c5 [Shared] Adds @UserInfoValue property wrapper for ALTLocalizedErrors
ALTLocalizedErrors now automatically include all properties annotated with @UserInfoValue in userInfo when bridged to NSError.
2023-05-11 14:29:45 -05:00
Riley Testut
fe5fc07f9e Updates app version to 2.0b1 🎉 2023-04-04 18:53:18 -05:00
Riley Testut
27a69036ae Merge branch 'source_detail' into develop 2023-04-04 18:15:59 -05:00
Riley Testut
96f5e92dc4 Fixes internal location of OperatingSystemVersion+Comparable in Xcode project 2023-04-04 18:02:32 -05:00
Riley Testut
bd5c942c43 [AltStoreCore] Migrates Core Data model from v11 to v12 2023-04-04 17:59:52 -05:00
Riley Testut
60641fccce Supports viewing all NewsItems and StoreApps for a source 2023-04-04 16:17:38 -05:00
Riley Testut
5c419aa333 Shows detailed source “About” page when adding 3rd-party sources
Allows users to preview sources before adding them to their AltStore.
2023-04-04 15:44:46 -05:00
Riley Testut
3e70cfc996 Refactors SourcesViewController from Main.storyboard to new Sources.storyboard
Also refactors BannerCollectionViewCell to AppBannerCollectionViewCell to support initializing from code.
2023-04-04 14:37:11 -05:00
Riley Testut
6be78cd77f [AltStoreCore] Adds @AsyncManaged property wrapper
Same as @Managed, except it supports using Swift Concurrency to fetch values from its managedObject’s managedObjectContext.
2023-04-04 14:21:12 -05:00
Riley Testut
86d2db189f [AltStoreCore] Adds NSManagedObjectContext.performAsync() to wrap iOS 15+ async perform()
Allows us to use Swift Concurrency with Core Data pre-iOS 15.
2023-04-04 14:21:00 -05:00
Riley Testut
82701956d9 Updates app version to 1.6.2b 2023-03-21 13:11:52 -05:00
Riley Testut
15dd044be9 Fixes UIApplication.setMinimumBackgroundFetchInterval() deprecation warning 2023-03-02 15:58:18 -06:00
Riley Testut
f20f67f6f4 Fixes peek & pop deprecation warnings 2023-03-02 15:48:33 -06:00
Riley Testut
1ccfa6652a [Shared] Updates projects to recommended settings (Xcode 14.1) 2023-03-01 17:00:43 -06:00
Riley Testut
61ad385fbd [AltWidget] Updates version to match AltStore
Fixes “App extension CFBundleShortVersionString must match parent app” warning
2023-03-01 16:38:49 -06:00
Riley Testut
4c09180cba [AltWidget] Fixes framework search paths “Directory not found” warning 2023-03-01 16:38:49 -06:00
Riley Testut
84c2ccbe1e Silences “Double-quoted include in framework header” warnings 2023-03-01 16:38:49 -06:00
Riley Testut
049065d5ab [Shared] Updates CocoaPods dependencies 2023-03-01 16:38:49 -06:00
Riley Testut
dce1298fb7 [Shared] Raises deployment targets to iOS 14.0 and macOS 11.0 2023-03-01 16:38:47 -06:00
Riley Testut
8677966f96 Updates app version to 1.6.1 2023-03-01 16:37:35 -06:00
Riley Testut
186abfd4bc [AltPlugin] Updates version to 1.12 2023-02-28 15:57:13 -06:00
Riley Testut
46341773e6 Updates app version to 1.6.1b 2023-02-07 16:37:10 -06:00
Riley Testut
3adfc9db6d Adds “Clear Cache” button to remove temporary files and uninstalled app backups 2023-02-07 16:11:39 -06:00
Riley Testut
038784b421 Updates app version to 1.6 2023-01-30 11:42:24 -06:00
Riley Testut
003312a6f3 [AltServer] Updates app version to 1.6 2023-01-30 11:42:06 -06:00
Riley Testut
4c7c6bc905 Updates app version to 1.6rc3 2023-01-24 15:51:59 -06:00
Riley Testut
16e205b9c6 Updates app version to 1.6rc2 2023-01-24 15:51:59 -06:00
Riley Testut
57d248adfe [AltServer] Updates app version to 1.6rc 2023-01-24 15:51:32 -06:00
Riley Testut
39cc0b5da5 Updates app version to 1.6rc 2023-01-24 15:51:32 -06:00
Riley Testut
df8debb386 Adds AltTests test target
# Conflicts:
#	AltStore.xcodeproj/project.pbxproj
2023-01-24 15:48:42 -06:00
Riley Testut
b850a3192a [AltServer] Updates app version to 1.6b4 (build 69, nice) 2023-01-24 15:07:10 -06:00
Riley Testut
3df1a12018 [AltPlugin] Updates version to 1.11 2023-01-24 15:07:06 -06:00
Riley Testut
ca9c0596f8 Moves @Managed to AltStoreCore
# Conflicts:
#	AltStore.xcodeproj/project.pbxproj
2023-01-24 15:04:53 -06:00
Riley Testut
dbd71050ac [Shared] Adds OperatingSystemVersion+Comparable to AltServer target 2023-01-24 15:03:09 -06:00
Riley Testut
8609209821 Conforms OperatingSystemVersion to Comparable
# Conflicts:
#	AltStore.xcodeproj/project.pbxproj
2023-01-24 15:01:42 -06:00
Riley Testut
a4078159ac [AltServer] Updates app version to 1.6b3 2023-01-24 14:23:42 -06:00
Riley Testut
020fb74a1c Updates app version to 1.6b3 2023-01-24 14:23:42 -06:00
Riley Testut
3b38d725d7 [Shared] Refactors error handling based on ALTLocalizedError protocol (#1115)
* [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.

# Conflicts:
#	AltStore.xcodeproj/project.pbxproj

* Fixes decoding CodableError nested user info values
2023-01-24 13:56:41 -06:00