mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-12 16:23:32 +01:00
Leaves apps activated if there is no active app limit during migration
This commit is contained in:
@@ -11,6 +11,9 @@ import CoreData
|
||||
|
||||
import AltSign
|
||||
|
||||
// Free developer accounts are limited to only 3 active sideloaded apps at a time as of iOS 13.3.1.
|
||||
let ALTActiveAppsLimit = 3
|
||||
|
||||
protocol InstalledAppProtocol: Fetchable
|
||||
{
|
||||
var name: String { get }
|
||||
|
||||
@@ -258,7 +258,7 @@
|
||||
</object>
|
||||
<object type="XDDEVATTRIBUTEMAPPING" id="z148">
|
||||
<attribute name="valueexpressiondata" type="binary">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
|
||||
</attribute>
|
||||
<attribute name="name" type="string">isActive</attribute>
|
||||
<relationship name="entitymapping" type="1/1" destination="XDDEVENTITYMAPPING" idrefs="z179"></relationship>
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
//
|
||||
|
||||
import CoreData
|
||||
import AltSign
|
||||
|
||||
@objc(InstalledAppToInstalledAppMigrationPolicy)
|
||||
class InstalledAppToInstalledAppMigrationPolicy: NSEntityMigrationPolicy
|
||||
@@ -28,10 +29,30 @@ class InstalledAppToInstalledAppMigrationPolicy: NSEntityMigrationPolicy
|
||||
dInstance.setValue(teams.first, forKey: #keyPath(InstalledApp.team))
|
||||
}
|
||||
|
||||
@objc(defaultIsActiveForBundleID:)
|
||||
func defaultIsActive(for bundleID: String) -> NSNumber
|
||||
@objc(defaultIsActiveForBundleID:team:)
|
||||
func defaultIsActive(for bundleID: String, team: NSManagedObject?) -> NSNumber
|
||||
{
|
||||
let isActive = (bundleID == StoreApp.altstoreAppID)
|
||||
let isActive: Bool
|
||||
|
||||
let activeAppsMinimumVersion = OperatingSystemVersion(majorVersion: 13, minorVersion: 3, patchVersion: 1)
|
||||
if !ProcessInfo.processInfo.isOperatingSystemAtLeast(activeAppsMinimumVersion)
|
||||
{
|
||||
isActive = true
|
||||
}
|
||||
else if let team = team, let type = team.value(forKey: #keyPath(Team.type)) as? Int16, type != ALTTeamType.free.rawValue
|
||||
{
|
||||
isActive = true
|
||||
}
|
||||
else
|
||||
{
|
||||
// AltStore should always be active, but deactivate all other apps.
|
||||
isActive = (bundleID == StoreApp.altstoreAppID)
|
||||
|
||||
// We can assume there is an active app limit,
|
||||
// but will confirm next time user authenticates.
|
||||
UserDefaults.standard.activeAppsLimit = ALTActiveAppsLimit
|
||||
}
|
||||
|
||||
return NSNumber(value: isActive)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,8 +231,7 @@ class AuthenticationOperation: ResultOperation<(ALTTeam, ALTCertificate, ALTAppl
|
||||
let activeAppsMinimumVersion = OperatingSystemVersion(majorVersion: 13, minorVersion: 3, patchVersion: 1)
|
||||
if team.type == .free, ProcessInfo.processInfo.isOperatingSystemAtLeast(activeAppsMinimumVersion)
|
||||
{
|
||||
// Free developer accounts are limited to only 3 active sideloaded apps at a time as of iOS 13.3.1.
|
||||
UserDefaults.standard.activeAppsLimit = 3
|
||||
UserDefaults.standard.activeAppsLimit = ALTActiveAppsLimit
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user