Explorar o código

Use CNContactsUserDefaults to get device region on iOS

Amir Khan hai 1 ano
pai
achega
68253ed404

+ 4 - 0
MobileLibrary/iOS/PsiphonTunnel/PsiphonTunnel/PsiphonTunnel.m

@@ -22,6 +22,7 @@
 #import <stdatomic.h>
 #import <stdatomic.h>
 #import <CoreTelephony/CTTelephonyNetworkInfo.h>
 #import <CoreTelephony/CTTelephonyNetworkInfo.h>
 #import <CoreTelephony/CTCarrier.h>
 #import <CoreTelephony/CTCarrier.h>
+#import <Contacts/CNContactsUserDefaults.h>
 #import <Psi/Psi.h>
 #import <Psi/Psi.h>
 #import "IPv6Synthesizer.h"
 #import "IPv6Synthesizer.h"
 #import "PsiphonProviderFeedbackHandlerShim.h"
 #import "PsiphonProviderFeedbackHandlerShim.h"
@@ -1577,6 +1578,9 @@ typedef NS_ERROR_ENUM(PsiphonTunnelErrorDomain, PsiphonTunnelErrorCode) {
     if (@available(iOS 16.0, *)) {
     if (@available(iOS 16.0, *)) {
         // CTCarrier deprecated with no replacement as of iOS 16 so there is no alternative API to
         // CTCarrier deprecated with no replacement as of iOS 16 so there is no alternative API to
         // get the carrier country code; [CTCarrier isoCountryCode] returns @"--" on iOS >=16.
         // get the carrier country code; [CTCarrier isoCountryCode] returns @"--" on iOS >=16.
+        
+        return [[[CNContactsUserDefaults sharedDefaults] countryCode] capitalizedString];
+        
     } else {
     } else {
         CTTelephonyNetworkInfo *networkInfo = nil;
         CTTelephonyNetworkInfo *networkInfo = nil;
         CTCarrier *carrier = nil;
         CTCarrier *carrier = nil;