Commit Graph

70 Commits

Author SHA1 Message Date
osy
97232fec1e Preserve device specific keys in Info.plist
Apple's Info.plist support platform and device specific keys to augment existing
keys. For example `UISupportedInterfaceOrientations~ipad` replaces
`UISupportedInterfaceOrientations` when running on an iPad.

By using Bundle.infoDictionary, Apple will pre-process the Info.plist and replace
any key with its device specific variant. Since AltStore does not support iPad,
this will strip out any iPad specific keys for the installing app.

We add an extension Bundle.completeInfoDictionary that will return the original
de-serialized dictionary including all the device specific keys.

See: https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW9

# Conflicts:
#	AltKit/Extensions/Bundle+AltStore.swift
#	AltStore/Model/DatabaseManager.swift
2020-08-31 12:47:11 -07:00
Riley Testut
fff044344a Migrates from Core Data model v6 to v7 2020-08-28 13:25:20 -07:00
Riley Testut
1b0f6a19f1 Shows source errors in SourcesViewController 2020-08-27 16:39:03 -07:00
Riley Testut
08bcd9b9fd Improves error handling when fetching multiple sources
Fetching sources is no longer all or nothing. Now if a source cannot be fetched, it won’t prevent other sources from being updated.
2020-08-27 16:28:13 -07:00
Riley Testut
af6f57f945 Fixes installing AltStore versions containing app extensions 2020-07-24 13:02:48 -07:00
Riley Testut
feae50520d Replaces cached AltStore every launch for DEBUG builds 2020-06-07 09:49:29 -07:00
Riley Testut
47d206ad19 Removes active app extension limits on 13.5 or later 2020-05-17 23:47:26 -07:00
Riley Testut
46469838f8 Deactivates apps by backing up + deleting them on iOS 13.5+
Deactivating apps by removing their profiles no longer works on iOS 13.5. Instead, AltStore will now back up the app by temporarily replacing it with AltBackup, then remove the app from the phone.
2020-05-17 23:47:26 -07:00
Riley Testut
e08646a337 Fixes updating DolphiniOS due to mismatched bundle IDs
Manually sets Dolphin’s CFBundleIdentifier to match the source bundle ID to prevent breaking updates for existing users.
2020-05-08 11:45:23 -07:00
Riley Testut
01e73ed2f7 Leaves apps activated if there is no active app limit during migration 2020-04-01 13:06:06 -07:00
Riley Testut
ff5c643254 Adds support for ALPHA builds 2020-04-01 11:51:00 -07:00
Riley Testut
a649c40fe8 Migrates from Core Data model v5 to v6 2020-03-24 13:43:16 -07:00
Riley Testut
e5170a2f4a Adds initial support for 3rd party Sources 2020-03-24 13:27:44 -07:00
Riley Testut
fd551ade2e Adds Drag & Drop support for activating/deactivating apps 2020-03-20 16:38:54 -07:00
Riley Testut
959a521b8b Migrates from Core Data model v4 to v5 2020-03-11 17:29:32 -07:00
Riley Testut
e46983067b Adds support for activating and deactivating apps
iOS 13.3.1 limits free developer accounts to 3 apps and app extensions. As a workaround, we now allow up to 3 “active” apps (apps with installed provisioning profiles), as well as additional “inactivate” apps which don’t have any profiles installed, causing them to not count towards the total. Inactive apps cannot be opened until they are activated.
2020-03-11 15:49:26 -07:00
Riley Testut
c32ed758b4 Refreshes apps by installing provisioning profiles when possible
Assuming the certificate used to originally sign an app is still valid, we can refresh an app simply by installing new provisioning profiles. However, if the signing certificate is no longer valid, we fall back to the old method of resigning + reinstalling.
2020-03-06 17:34:18 -08:00
Riley Testut
02dc9a1c62 Migrates from Core Data model v3 to v4 2020-02-11 18:40:18 -08:00
Riley Testut
f6e536a805 Improves App ID counting + management
Fetches App ID count directly from Apple, and adds AppIDsViewController to view all App IDs for the logged-in account.
2020-02-10 17:30:11 -08:00
Riley Testut
733f53109d Improves error message when registering app + app extension after App ID limit is reached 2020-02-10 16:30:54 -08:00
Riley Testut
5e59489287 Migrates from Core Data model v2 to v3 2020-01-24 16:11:42 -08:00
Riley Testut
477f36cde6 Updates most InstalledApp/Extension properties when refreshing apps 2020-01-24 15:03:16 -08:00
Riley Testut
1b2bb5ca46 Adds InstalledExtension 2020-01-21 16:53:34 -08:00
Riley Testut
a2de6929b5 Adds InstalledApp.installedDate 2020-01-21 16:49:38 -08:00
Riley Testut
f04e0de990 Adds InstalledApp.team relationship 2020-01-14 18:39:44 -08:00
Riley Testut
4be4a9895d Uses UTIs to determine whether apps are installed or not
AltStore now inserts an app-specific UTI when resigning apps, and it periodically checks whether that app has been deleted by checking whether UTTypeCopyDeclaration returns nil for the same app-specific UTI.
2019-12-17 19:17:45 -08:00
Riley Testut
8b1f30cafc Changes ALTTeamType.individual localizedDescription to “Developer” 2019-11-05 14:25:59 -08:00
Riley Testut
8df834a51a Fetches Patreon creator access token from AltStore source 2019-11-04 13:42:19 -08:00
Riley Testut
b502f8ed6e Adds STAGING flag to conditionally use staging endpoint 2019-11-04 13:38:54 -08:00
Riley Testut
1504a277d5 Re-enables checking if Patreon account is a patron 2019-09-25 00:53:36 -07:00
Riley Testut
f506988296 Updates cached AltStore bundle when app has been updated 2019-09-21 16:35:08 -07:00
Riley Testut
8bfa5c6ff3 Updates AltStore source to use new storage backend 2019-09-17 11:51:53 -07:00
Riley Testut
3a190afa3b Updates Apps.json 2019-09-15 19:39:01 -07:00
Riley Testut
f03ae815d7 Temporarily enables Patreon benefits for all Patreon accounts 2019-09-14 13:41:58 -07:00
Riley Testut
9f9710c31d Updates + migrates Core Data model to v2 2019-09-14 13:22:38 -07:00
Riley Testut
6214f1044b Improves handling of non-patron Patreon accounts 2019-09-12 13:08:38 -07:00
Riley Testut
502a5488b0 Adds support for installing AltStore beta from AltStore 2019-09-12 13:04:15 -07:00
Riley Testut
225bbbe7af Fixes sideloaded apps disappearing after unlinking Patreon 2019-09-10 12:32:48 -07:00
Riley Testut
c2a8b59e36 Adds News tab 2019-09-03 21:58:07 -07:00
Riley Testut
eb5b1a616a [AltStore] Adds basic Patreon integration
- Lists beta versions of apps when signed in to Patreon
- Lists names of Patrons with the Credits benefit
2019-08-28 11:13:22 -07:00
Riley Testut
8df4c97a74 [AltStore] Limits background app refreshing to once every 6 hours 2019-08-28 11:08:04 -07:00
Riley Testut
7d48b831ed [AltStore] Loads images remotely rather than including them in app bundle 2019-08-20 19:06:03 -05:00
Riley Testut
33d596dee8 [AltStore] Fixes incorrect bundle ID for local AltStore copy 2019-07-31 20:29:44 -07:00
Riley Testut
e81dc905c9 [AltStore] Fixes not updating app’s version number when updating 2019-07-31 15:19:27 -07:00
Riley Testut
7727a0b725 [AltStore] Renames App to StoreApp 2019-07-31 14:07:00 -07:00
Riley Testut
98b474edaf [AltStore] Treats partial-failure refresh attempts as failures 2019-07-31 13:53:44 -07:00
Riley Testut
caf424df91 [AltStore] Tracks background refresh attempts for debugging 2019-07-31 13:35:12 -07:00
Riley Testut
7385d109cd [AltStore] Allows multiple simultaneous calls to DatabaseManager.start 2019-07-31 13:24:59 -07:00
Riley Testut
87ced5523e [AltStore] Refactors fetch apps logic to use Source model objects 2019-07-30 17:00:04 -07:00
Riley Testut
083f28896e [AltStore] Adds App.size 2019-07-30 12:43:01 -07:00