Workaround for iOS 18+ users

This commit is contained in:
Mineek 2025-01-01 15:01:30 +01:00
parent 58f5d5d57b
commit a93e165f85
3 changed files with 16 additions and 5 deletions

View file

@ -72,7 +72,13 @@ struct ContentView: View {
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding()
Button("Authenticate") {
if appleId.isEmpty || password.isEmpty || code.isEmpty {
if appleId.isEmpty || password.isEmpty {
return
}
if code.isEmpty {
// we can just try to log in and it'll request a code, very scuffed tho.
ipaTool = IPATool(appleId: appleId, password: password)
ipaTool?.authenticate(requestCode: true)
return
}
let finalPassword = password + code

View file

@ -110,7 +110,7 @@ class StoreClient {
return false
}
func authenticate() -> Bool {
func authenticate(requestCode: Bool = false) -> Bool {
if self.guid == nil {
self.guid = generateGuid(appleId: appleId)
}
@ -186,6 +186,10 @@ class StoreClient {
if ret {
break
}
if requestCode {
ret = false
break
}
}
return ret
}
@ -284,11 +288,10 @@ class IPATool {
storeClient = StoreClient(appleId: appleId, password: password)
}
func authenticate() -> Bool {
func authenticate(requestCode: Bool = false) -> Bool {
print("Authenticating to iTunes Store...")
if !storeClient.tryLoadAuthInfo() {
// storeClient.authenticate()
return storeClient.authenticate()
return storeClient.authenticate(requestCode: requestCode)
} else {
return true
}

View file

@ -9,3 +9,5 @@ The UI is a bit scuffed, there's no progress bar during downgrading so just wait
I am not responsible for any issues caused by the usage of this tool, it's experimental and I will not be held accountable if anything happens. Use at your own risk. Although nothing should happen, just putting this here just in case.
The app you want to downgrade will need to be uninstalled, however, you can preserve app data by offloading the app first, and then downgrading it.
You should request a 2fa code BEFORE logging in, via the Settings app, however, if the settings app doesn't show the option ( iOS 18+ ), you can leave the code field empty, and then you should get a popup, accept it, and copy the code from there. If it doesn't log you in fully close and re-open the app and try again.