mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
[AltServer] Fixes “Max Apps Allowed” error when updating an already-installed app
Removes provisioning profile from device before installation, then adds them back afterwards
This commit is contained in:
@@ -26,7 +26,7 @@ class Keychain
|
||||
self.appleIDEmailAddress = nil
|
||||
self.appleIDPassword = nil
|
||||
self.signingCertificatePrivateKey = nil
|
||||
self.signingCertificateIdentifier = nil
|
||||
self.signingCertificateSerialNumber = nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,13 +62,13 @@ extension Keychain
|
||||
}
|
||||
}
|
||||
|
||||
var signingCertificateIdentifier: String? {
|
||||
var signingCertificateSerialNumber: String? {
|
||||
get {
|
||||
let identifier = try? self.keychain.get("signingCertificateIdentifier")
|
||||
return identifier
|
||||
let serialNumber = try? self.keychain.get("signingCertificateSerialNumber")
|
||||
return serialNumber
|
||||
}
|
||||
set {
|
||||
self.keychain["signingCertificateIdentifier"] = newValue
|
||||
self.keychain["signingCertificateSerialNumber"] = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ class AuthenticationOperation: ResultOperation<ALTSigner>
|
||||
Keychain.shared.appleIDEmailAddress = altAccount.appleID // "account" may have nil appleID since we just saved.
|
||||
Keychain.shared.appleIDPassword = self.appleIDPassword
|
||||
|
||||
Keychain.shared.signingCertificateIdentifier = signer.certificate.identifier
|
||||
Keychain.shared.signingCertificateSerialNumber = signer.certificate.serialNumber
|
||||
Keychain.shared.signingCertificatePrivateKey = signer.certificate.privateKey
|
||||
|
||||
super.finish(.success(signer))
|
||||
@@ -299,7 +299,7 @@ private extension AuthenticationOperation
|
||||
{
|
||||
let certificates = try Result(certificates, error).get()
|
||||
|
||||
guard let certificate = certificates.first(where: { $0.identifier == certificate.identifier }) else {
|
||||
guard let certificate = certificates.first(where: { $0.serialNumber == certificate.serialNumber }) else {
|
||||
throw AuthenticationError.missingCertificate
|
||||
}
|
||||
|
||||
@@ -349,9 +349,9 @@ private extension AuthenticationOperation
|
||||
let certificates = try Result(certificates, error).get()
|
||||
|
||||
if
|
||||
let identifier = Keychain.shared.signingCertificateIdentifier,
|
||||
let serialNumber = Keychain.shared.signingCertificateSerialNumber,
|
||||
let privateKey = Keychain.shared.signingCertificatePrivateKey,
|
||||
let certificate = certificates.first(where: { $0.identifier == identifier })
|
||||
let certificate = certificates.first(where: { $0.serialNumber == serialNumber })
|
||||
{
|
||||
certificate.privateKey = privateKey
|
||||
completionHandler(.success(certificate))
|
||||
|
||||
Reference in New Issue
Block a user