Skip to content

Commit 0d15db2

Browse files
committed
Remove [UIApplication openURL:]
When you compile with Xcode 16, [UIApplication openURL:] no longer functions and just returns NO. As Apple is going to require compilation with Xcode 16 in 2025-04, lets expunge it from the code. This requires moving the iOS minimum up to iOS 10.
1 parent 2781038 commit 0d15db2

File tree

7 files changed

+25
-35
lines changed

7 files changed

+25
-35
lines changed

AppAuth.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ It follows the OAuth 2.0 for Native Apps best current practice
3131
# classes of AppAuth with tokens on watchOS and tvOS, but currently the
3232
# library won't help you obtain authorization grants on those platforms.
3333

34-
ios_deployment_target = "9.0"
34+
ios_deployment_target = "10.0"
3535
osx_deployment_target = "10.12"
3636
s.ios.deployment_target = ios_deployment_target
3737
s.osx.deployment_target = osx_deployment_target

AppAuth.xcodeproj/project.pbxproj

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2888,6 +2888,7 @@
28882888
340E73861C5D819B0076B1F6 /* Debug */ = {
28892889
isa = XCBuildConfiguration;
28902890
buildSettings = {
2891+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
28912892
PRODUCT_NAME = "$(TARGET_NAME)";
28922893
SKIP_INSTALL = YES;
28932894
};
@@ -2896,6 +2897,7 @@
28962897
340E73871C5D819B0076B1F6 /* Release */ = {
28972898
isa = XCBuildConfiguration;
28982899
buildSettings = {
2900+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
28992901
PRODUCT_NAME = "$(TARGET_NAME)";
29002902
SKIP_INSTALL = YES;
29012903
};
@@ -2907,7 +2909,7 @@
29072909
CLANG_ENABLE_MODULES = YES;
29082910
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/";
29092911
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
2910-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
2912+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
29112913
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
29122914
PRODUCT_BUNDLE_IDENTIFIER = net.openid.appauth.AppAuthTests;
29132915
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -2924,7 +2926,7 @@
29242926
CLANG_ENABLE_MODULES = YES;
29252927
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/";
29262928
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
2927-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
2929+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
29282930
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
29292931
PRODUCT_BUNDLE_IDENTIFIER = net.openid.appauth.AppAuthTests;
29302932
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3038,7 +3040,7 @@
30383040
DYLIB_INSTALL_NAME_BASE = "@rpath";
30393041
INFOPLIST_FILE = Sources/CoreFramework/Info.plist;
30403042
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
3041-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
3043+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
30423044
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
30433045
PRODUCT_BUNDLE_IDENTIFIER = net.openid.AppAuthCore;
30443046
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3064,7 +3066,7 @@
30643066
DYLIB_INSTALL_NAME_BASE = "@rpath";
30653067
INFOPLIST_FILE = Sources/CoreFramework/Info.plist;
30663068
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
3067-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
3069+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
30683070
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
30693071
PRODUCT_BUNDLE_IDENTIFIER = net.openid.AppAuthCore;
30703072
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3089,7 +3091,7 @@
30893091
DYLIB_INSTALL_NAME_BASE = "@rpath";
30903092
INFOPLIST_FILE = Sources/Framework/Info.plist;
30913093
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
3092-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
3094+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
30933095
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
30943096
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOS";
30953097
PRODUCT_NAME = AppAuth;
@@ -3114,7 +3116,7 @@
31143116
DYLIB_INSTALL_NAME_BASE = "@rpath";
31153117
INFOPLIST_FILE = Sources/Framework/Info.plist;
31163118
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
3117-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
3119+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
31183120
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
31193121
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOS";
31203122
PRODUCT_NAME = AppAuth;
@@ -3133,7 +3135,7 @@
31333135
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
31343136
HEADER_SEARCH_PATHS = .;
31353137
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
3136-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
3138+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
31373139
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
31383140
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOSTests";
31393141
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3147,7 +3149,7 @@
31473149
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
31483150
HEADER_SEARCH_PATHS = .;
31493151
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
3150-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
3152+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
31513153
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
31523154
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOSTests";
31533155
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3401,7 +3403,7 @@
34013403
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
34023404
HEADER_SEARCH_PATHS = .;
34033405
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
3404-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
3406+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
34053407
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
34063408
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-ExtensionTests";
34073409
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3415,7 +3417,7 @@
34153417
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
34163418
HEADER_SEARCH_PATHS = .;
34173419
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
3418-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
3420+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
34193421
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
34203422
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-ExtensionTests";
34213423
PRODUCT_NAME = "$(TARGET_NAME)";

CONTRIBUTORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ Hernan Zalazar <hernan.zalazar@gmail.com> https://github.com/hzalaz
2020
Joseph Heenan <joseph@emobix.co.uk> https://github.com/jogu
2121
Julien Bodet <julien.bodet92@gmail.com> https://github.com/julienbodet
2222
Tobias Schröpf <schroepf@gmail.com> https://github.com/schroepf
23+
Dave MacLachlan <dmaclach@gmail.com> https://github.com/dmaclach

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ let package = Package(
2424
name: "AppAuth",
2525
platforms: [
2626
.macOS(.v10_12),
27-
.iOS(.v9),
27+
.iOS(.v10),
2828
.tvOS(.v9),
2929
.watchOS(.v2)
3030
],

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ For tvOS, AppAuth implements [OAuth 2.0 Device Authorization Grant
3939

4040
#### Supported Versions
4141

42-
AppAuth supports iOS 7 and above.
42+
AppAuth supports iOS 10 and above.
4343

4444
iOS 9+ uses the in-app browser tab pattern
4545
(via `SFSafariViewController`), and falls back to the system browser (mobile

Sources/AppAuth/iOS/OIDExternalUserAgentIOS.m

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -175,18 +175,14 @@ - (BOOL)presentExternalUserAgentRequest:(id<OIDExternalUserAgentRequest>)request
175175
openedUserAgent = YES;
176176
}
177177
}
178-
// iOS 8 and earlier, use mobile Safari
178+
// If all else failed use the local browser.
179179
if (!openedUserAgent){
180-
openedUserAgent = [[UIApplication sharedApplication] openURL:requestURL];
180+
[[UIApplication sharedApplication] openURL:requestURL
181+
options:@{}
182+
completionHandler:nil];
183+
openedUserAgent = YES;
181184
}
182185

183-
if (!openedUserAgent) {
184-
[self cleanUp];
185-
NSError *safariError = [OIDErrorUtilities errorWithCode:OIDErrorCodeSafariOpenError
186-
underlyingError:nil
187-
description:@"Unable to open Safari."];
188-
[session failExternalUserAgentFlowWithError:safariError];
189-
}
190186
return openedUserAgent;
191187
}
192188

Sources/AppAuth/iOS/OIDExternalUserAgentIOSCustomBrowser.m

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -145,26 +145,17 @@ - (BOOL)presentExternalUserAgentRequest:(nonnull id<OIDExternalUserAgentRequest>
145145
NSString *testURLString = [NSString stringWithFormat:@"%@://example.com", _canOpenURLScheme];
146146
NSURL *testURL = [NSURL URLWithString:testURLString];
147147
if (![[UIApplication sharedApplication] canOpenURL:testURL]) {
148-
if (@available(iOS 10.0, *)) {
149-
[[UIApplication sharedApplication] openURL:_appStoreURL options:@{} completionHandler:nil];
150-
} else {
151-
[[UIApplication sharedApplication] openURL:_appStoreURL];
152-
}
148+
[[UIApplication sharedApplication] openURL:_appStoreURL options:@{} completionHandler:nil];
153149
return NO;
154150
}
155151
}
156152

157153
// Transforms the request URL and opens it.
158154
NSURL *requestURL = [request externalUserAgentRequestURL];
159155
requestURL = _URLTransformation(requestURL);
160-
if (@available(iOS 10.0, *)) {
161-
BOOL willOpen = [[UIApplication sharedApplication] canOpenURL:requestURL];
162-
[[UIApplication sharedApplication] openURL:requestURL options:@{} completionHandler:nil];
163-
return willOpen;
164-
} else {
165-
BOOL openedInBrowser = [[UIApplication sharedApplication] openURL:requestURL];
166-
return openedInBrowser;
167-
}
156+
BOOL willOpen = [[UIApplication sharedApplication] canOpenURL:requestURL];
157+
[[UIApplication sharedApplication] openURL:requestURL options:@{} completionHandler:nil];
158+
return willOpen;
168159
}
169160

170161
- (void)dismissExternalUserAgentAnimated:(BOOL)animated

0 commit comments

Comments
 (0)