@@ -15,21 +15,27 @@ public class AlamofireWrapper: NSObject {
1515
1616 @objc public override init ( ) {
1717 let configuration = URLSessionConfiguration . default
18- self . session = Session ( configuration: configuration)
18+ // Create session with ServerTrustManager that allows all hosts by default
19+ let serverTrustManager = ServerTrustManager ( allHostsMustBeEvaluated: false , evaluators: [ : ] )
20+ self . session = Session ( configuration: configuration, serverTrustManager: serverTrustManager)
1921 self . requestSerializer = RequestSerializer ( )
2022 self . responseSerializer = ResponseSerializer ( )
2123 super. init ( )
2224 }
2325
2426 @objc public init ( configuration: URLSessionConfiguration ) {
25- self . session = Session ( configuration: configuration)
27+ // Create session with ServerTrustManager that allows all hosts by default
28+ let serverTrustManager = ServerTrustManager ( allHostsMustBeEvaluated: false , evaluators: [ : ] )
29+ self . session = Session ( configuration: configuration, serverTrustManager: serverTrustManager)
2630 self . requestSerializer = RequestSerializer ( )
2731 self . responseSerializer = ResponseSerializer ( )
2832 super. init ( )
2933 }
3034
3135 @objc public init ( configuration: URLSessionConfiguration , baseURL: URL ? ) {
32- self . session = Session ( configuration: configuration)
36+ // Create session with ServerTrustManager that allows all hosts by default
37+ let serverTrustManager = ServerTrustManager ( allHostsMustBeEvaluated: false , evaluators: [ : ] )
38+ self . session = Session ( configuration: configuration, serverTrustManager: serverTrustManager)
3339 self . requestSerializer = RequestSerializer ( )
3440 self . responseSerializer = ResponseSerializer ( )
3541 super. init ( )
@@ -68,20 +74,16 @@ public class AlamofireWrapper: NSObject {
6874 private func recreateSession( ) {
6975 let configuration = session. sessionConfiguration
7076
71- if let secPolicy = securityPolicy {
72- // Create a server trust manager with our security policy
73- let evaluators : [ String : ServerTrustEvaluating ] = [ : ] // Will be filled dynamically per request
74- let serverTrustManager = ServerTrustManager ( allHostsMustBeEvaluated: false , evaluators: evaluators)
75-
76- // Create new session with server trust manager
77- session = Session (
78- configuration: configuration,
79- serverTrustManager: serverTrustManager
80- )
81- } else {
82- // Create session without server trust manager
83- session = Session ( configuration: configuration)
84- }
77+ // Create a server trust manager with our security policy
78+ // Use allHostsMustBeEvaluated: false to allow default trust evaluation for non-pinned hosts
79+ let serverTrustManager = ServerTrustManager ( allHostsMustBeEvaluated: false , evaluators: [ : ] )
80+
81+ // Create new session with server trust manager
82+ // Keep the session alive by replacing it atomically
83+ session = Session (
84+ configuration: configuration,
85+ serverTrustManager: serverTrustManager
86+ )
8587 }
8688
8789 /// Get dispatch queue for responses
@@ -209,12 +211,14 @@ public class AlamofireWrapper: NSObject {
209211 }
210212 }
211213
212- // Store reference to task before async callback
213- let task = afRequest. task
214-
215214 // Response handling
216215 let respQueue = responseQueue ( mainThread: respMainThread)
217- afRequest. response ( queue: respQueue) { response in
216+ afRequest. response ( queue: respQueue) { [ weak self] response in
217+ guard let self = self else { return }
218+
219+ // Get the actual task from the DataRequest (available after request started)
220+ let task = response. request? . task
221+
218222 if let error = response. error {
219223 let nsError = self . createNSError ( from: error, response: response. response, data: response. data)
220224 failure ( task, nsError)
@@ -230,7 +234,8 @@ public class AlamofireWrapper: NSObject {
230234 }
231235 }
232236
233- return task
237+ // Return the task (it will be available after request starts)
238+ return afRequest. task
234239 }
235240
236241 // MARK: - Multipart Form Data
@@ -311,12 +316,14 @@ public class AlamofireWrapper: NSObject {
311316 }
312317 }
313318
314- // Store reference to task before async callback
315- let task = afRequest. task
316-
317319 // Response handling
318320 let respQueue = responseQueue ( mainThread: respMainThread)
319- afRequest. response ( queue: respQueue) { response in
321+ afRequest. response ( queue: respQueue) { [ weak self] response in
322+ guard let self = self else { return }
323+
324+ // Get the actual task from the DataRequest (available after request started)
325+ let task = response. request? . task
326+
320327 if let error = response. error {
321328 let nsError = self . createNSError ( from: error, response: response. response, data: response. data)
322329 failure ( task, nsError)
@@ -332,7 +339,7 @@ public class AlamofireWrapper: NSObject {
332339 }
333340 }
334341
335- return task
342+ return afRequest . task
336343 }
337344
338345 // MARK: - Upload Tasks
@@ -724,11 +731,13 @@ public class AlamofireWrapper: NSObject {
724731 }
725732 }
726733
727- // Store reference to task before async callback
728- let task = afRequest. task
729-
730734 // Response handling
731- afRequest. response ( queue: . main) { response in
735+ afRequest. response ( queue: . main) { [ weak self] response in
736+ guard let self = self else { return }
737+
738+ // Get the actual task from the DataRequest (available after request started)
739+ let task = response. request? . task
740+
732741 if let error = response. error {
733742 let nsError = self . createNSError ( from: error, response: response. response, data: response. data)
734743 failure ( task, nsError)
0 commit comments