Skip to content

Commit 44089ae

Browse files
committed
Clean up provision function
1 parent fc68656 commit 44089ae

1 file changed

Lines changed: 9 additions & 36 deletions

File tree

iRAM-Plus/AnisetteDataHelper.swift

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -141,40 +141,15 @@ final class AnisetteDataHelper
141141

142142
func provision() async throws -> AnisetteData {
143143
try await fetchClientInfo()
144-
145-
// Verify client info was properly fetched
146-
guard self.clientInfo != nil, self.userAgent != nil, self.mdLu != nil, self.deviceId != nil else {
147-
self.printOut("ERROR: Client info not properly set after fetchClientInfo()")
148-
throw "Failed to get required client information from anisette server"
149-
}
150-
151-
self.printOut("Getting provisioning URLs")
152-
let gsaURL = URL(string: "https://gsa.apple.com/grandslam/GsService2/lookup")!
153-
var request = self.buildAppleRequest(url: gsaURL)
154-
request.httpMethod = "GET"
155-
156-
self.printOut("Requesting GSA lookup with client info: \(self.clientInfo!)")
157-
144+
self.printOut("Getting provisioning URLs")
145+
var request = self.buildAppleRequest(url: URL(string: "https://gsa.apple.com/grandslam/GsService2/lookup")!)
146+
request.httpMethod = "GET"
158147
let (data, response) = try await URLSession.shared.data(for: request)
159-
160-
if let httpResponse = response as? HTTPURLResponse {
161-
self.printOut("GSA lookup response status: \(httpResponse.statusCode)")
162-
if httpResponse.statusCode != 200 {
163-
self.printOut("GSA lookup failed with status \(httpResponse.statusCode)")
164-
self.printOut("Response body: \(String(data: data, encoding: .utf8) ?? "not utf8")")
165-
throw "Apple GSA service returned error \(httpResponse.statusCode). Please try again later"
166-
}
167-
}
168-
169-
let responseString = String(data: data, encoding: .utf8) ?? "not utf8"
170-
self.printOut("GSA lookup response: \(responseString)")
171-
172148
if
173149
let plist = try? PropertyListSerialization.propertyList(from: data, format: nil) as? Dictionary<String, Dictionary<String, Any>>,
174-
let urls = plist["urls"],
175-
let startProvisioningString = urls["midStartProvisioning"] as? String,
150+
let startProvisioningString = plist["urls"]?["midStartProvisioning"] as? String,
176151
let startProvisioningURL = URL(string: startProvisioningString),
177-
let endProvisioningString = urls["midFinishProvisioning"] as? String,
152+
let endProvisioningString = plist["urls"]?["midFinishProvisioning"] as? String,
178153
let endProvisioningURL = URL(string: endProvisioningString) {
179154
self.startProvisioningURL = startProvisioningURL
180155
self.endProvisioningURL = endProvisioningURL
@@ -183,13 +158,11 @@ final class AnisetteDataHelper
183158
self.printOut("Starting a provisioning session")
184159
return try await self.startProvisioningSession()
185160
} else {
186-
self.printOut("Apple didn't give valid URLs! Response structure:")
187-
self.printOut(responseString)
188-
if let plist = try? PropertyListSerialization.propertyList(from: data, format: nil) as? Dictionary<String, Any> {
189-
self.printOut("Parsed plist: \(plist)")
190-
}
191-
throw "Apple didn't give valid URLs. The service may be temporarily unavailable. Please try again later"
161+
self.printOut("Apple didn't give valid URLs! Got response: \(String(data: data, encoding: .utf8) ?? "not utf8")")
162+
throw "Apple didn't give valid URLs. Please try again later"
192163
}
164+
165+
193166
}
194167

195168
func startProvisioningSession() async throws -> AnisetteData {

0 commit comments

Comments
 (0)