برنامه نویسی

اشکال 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 ما می تواند راهی برای تأثیرگذاری نداشته باشد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا