برنامه نویسی
اشکال urlsession برای iOS 18.4 شبیه ساز

خلاصه: https://developer.apple.com/forums/thread/777999
مشکل کلی این است که در iOS 18.4 سیم کارت ، اگر همان درخواست دو بار ارسال شود ، درخواست دوم خطایی را گزارش می کند. پس از یک بحث مختصر ، به نظر می رسد که این مشکل محدود به شبیه ساز است و چنین مشکلی در دستگاه واقعی وجود ندارد.
برادر اسکیمو یک راه حل ساده ارائه داد ، که این امر ممنوعیت استفاده از پروتکل HTTP/3 برای ارسال درخواست است.
var request = URLRequest(url: url)
#if targetEnvironment(simulator)
request.assumesHTTP3Capable = false
#endif
let response = try await self.session.data(for: request)
در سطح برنامه ، می توانید پارامترهای موجود در درخواست را با ایجاد یک رهگیر تغییر دهید. و سپس این رهگیر را بر روی خصوصیات جلسه عمومی SDK ما تنظیم کنید:
// Create a custom network interceptor.
struct MyInterceptor: DataTaskInterceptor {
func interceptRequest(
details: any DataTaskRequestDetails
) async -> RequestInterceptionDisposition<(Data, URLResponse), any Error> {
var request = details.request
#if targetEnvironment(simulator)
request.assumesHTTP3Capable = false
#endif
// Ask for the modified request to be sent.
return .performModifiedRequest(request)
}
}
// Tell the `ArcGISURLSession` to use the custom interceptor.
ArcGISURLSession.dataTaskInterceptor = MyInterceptor()
به این ترتیب ، حتی اگر این اشکال شرور در نهایت وارد تولید iOS شود ، SDK ما می تواند راهی برای تأثیرگذاری نداشته باشد.