Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,32 @@ jobs:
uses: codecov/codecov-action@v6
with:
version: v0.7.3

xcode-27-preview-test:
# Xcode 27 is currently only available on the preview `xcode-27` image,
# on which Xcode 27 beta is the only (thus, default) Xcode and the simulator
# runtimes are the 27.0 generation. The image is preview, so this job is does
# not block merges.
# https://github.com/actions/runner-images/issues/14404
runs-on: xcode-27
continue-on-error: true
strategy:
fail-fast: false
matrix:
flags: [
"-scheme AppAuth-iOS -destination 'platform=iOS Simulator,name=iPhone 17,OS=27.0' -sdk 'iphonesimulator'",
"-scheme AppAuth-macOS -destination 'platform=macOS' -sdk 'macosx'",
"-scheme AppAuth_macOS -destination 'platform=macOS' -sdk 'macosx'",
"-scheme AppAuth-tvOS -destination 'platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=27.0' -sdk 'appletvsimulator'",
"-scheme AppAuth_tvOS -destination 'platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=27.0' -sdk 'appletvsimulator'",
"-scheme AppAuthTV -destination 'platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=27.0' -sdk 'appletvsimulator'"
]
steps:
- uses: actions/checkout@v5
- name: Warm up simulator runtimes
run: xcrun simctl list devices available
- name: Run unit test targets
run: |
xcodebuild test \
-project AppAuth.xcodeproj \
${{ matrix.flags }}
8 changes: 4 additions & 4 deletions AppAuth.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ It follows the OAuth 2.0 for Native Apps best current practice
# classes of AppAuth with tokens on watchOS and tvOS, but currently the
# library won't help you obtain authorization grants on those platforms.

ios_deployment_target = "12.0"
osx_deployment_target = "10.12"
ios_deployment_target = "15.0"
osx_deployment_target = "12.0"
s.ios.deployment_target = ios_deployment_target
s.osx.deployment_target = osx_deployment_target
s.watchos.deployment_target = "2.0"
s.tvos.deployment_target = "9.0"
s.watchos.deployment_target = "9.0"
s.tvos.deployment_target = "15.0"

s.source = { :git => "https://github.com/openid/AppAuth-iOS.git", :tag => s.version }
s.requires_arc = true
Expand Down
72 changes: 36 additions & 36 deletions AppAuth.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -2653,7 +2653,7 @@
PRODUCT_BUNDLE_IDENTIFIER = net.openid.AppAuthTVTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
};
name = Debug;
};
Expand All @@ -2668,7 +2668,7 @@
PRODUCT_BUNDLE_IDENTIFIER = net.openid.AppAuthTVTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
};
name = Release;
};
Expand Down Expand Up @@ -2702,7 +2702,7 @@
SDKROOT = appletvos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
Expand Down Expand Up @@ -2733,7 +2733,7 @@
SDKROOT = appletvos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
Expand Down Expand Up @@ -2815,14 +2815,14 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MACOSX_DEPLOYMENT_TARGET = 10.12;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MACOSX_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
WARNING_CFLAGS = "-Wno-gnu";
WATCHOS_DEPLOYMENT_TARGET = 2.0;
WATCHOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
};
Expand Down Expand Up @@ -2873,22 +2873,22 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MACOSX_DEPLOYMENT_TARGET = 10.12;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MACOSX_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
VALIDATE_PRODUCT = YES;
WARNING_CFLAGS = "-Wno-gnu";
WATCHOS_DEPLOYMENT_TARGET = 2.0;
WATCHOS_DEPLOYMENT_TARGET = 9.0;
};
name = Release;
};
340E73861C5D819B0076B1F6 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
Expand All @@ -2897,7 +2897,7 @@
340E73871C5D819B0076B1F6 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
Expand All @@ -2909,7 +2909,7 @@
CLANG_ENABLE_MODULES = YES;
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/";
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = net.openid.appauth.AppAuthTests;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -2926,7 +2926,7 @@
CLANG_ENABLE_MODULES = YES;
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/";
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = net.openid.appauth.AppAuthTests;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down Expand Up @@ -2979,7 +2979,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-tvOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
};
name = Debug;
};
Expand All @@ -2994,7 +2994,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-tvOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
};
name = Release;
};
Expand All @@ -3008,7 +3008,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
SKIP_INSTALL = YES;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
};
name = Debug;
};
Expand All @@ -3022,7 +3022,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
SKIP_INSTALL = YES;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
};
name = Release;
};
Expand All @@ -3040,7 +3040,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = Sources/CoreFramework/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = net.openid.AppAuthCore;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -3066,7 +3066,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = Sources/CoreFramework/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = net.openid.AppAuthCore;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -3091,7 +3091,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = Sources/Framework/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOS";
PRODUCT_NAME = AppAuth;
Expand All @@ -3116,7 +3116,7 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = Sources/Framework/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOS";
PRODUCT_NAME = AppAuth;
Expand All @@ -3135,7 +3135,7 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
HEADER_SEARCH_PATHS = .;
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -3149,7 +3149,7 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
HEADER_SEARCH_PATHS = .;
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down Expand Up @@ -3178,7 +3178,7 @@
TARGETED_DEVICE_FAMILY = 4;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
WATCHOS_DEPLOYMENT_TARGET = 2.0;
WATCHOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
};
Expand All @@ -3204,7 +3204,7 @@
TARGETED_DEVICE_FAMILY = 4;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
WATCHOS_DEPLOYMENT_TARGET = 2.0;
WATCHOS_DEPLOYMENT_TARGET = 9.0;
};
name = Release;
};
Expand All @@ -3227,7 +3227,7 @@
SDKROOT = appletvos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
Expand All @@ -3252,7 +3252,7 @@
SDKROOT = appletvos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
Expand All @@ -3269,7 +3269,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-tvOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
};
name = Debug;
};
Expand All @@ -3284,7 +3284,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-tvOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
TVOS_DEPLOYMENT_TARGET = 15.0;
};
name = Release;
};
Expand Down Expand Up @@ -3379,7 +3379,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = watchos;
SKIP_INSTALL = YES;
WATCHOS_DEPLOYMENT_TARGET = 2.0;
WATCHOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
};
Expand All @@ -3392,7 +3392,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = watchos;
SKIP_INSTALL = YES;
WATCHOS_DEPLOYMENT_TARGET = 2.0;
WATCHOS_DEPLOYMENT_TARGET = 9.0;
};
name = Release;
};
Expand All @@ -3403,7 +3403,7 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
HEADER_SEARCH_PATHS = .;
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-ExtensionTests";
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -3417,7 +3417,7 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
HEADER_SEARCH_PATHS = .;
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-ExtensionTests";
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
# UNRELEASED
- BREAKING: Updates made to support Xcode 27.
-- Raised minimum deployment targets to iOS 15.0, macOS 12.0, tvOS 15.0 and watchOS 9.0 (minimum for Xcode 27).
-- Swift Package Manager users: The required `swift-tools-version` bump from 5.3 to 5.7, to pickup the new platforms,
results in package resolution now requiring Swift 5.7 / Xcode 14 or later.
-- Projects that must keep supporting iOS 12-14 should stay on AppAuth 2.x, which remains buildable with Xcode 26 and earlier.
- BREAKING: `resumeExternalUserAgentFlowWithURL:error:` is now required in `OIDExternalUserAgentSession` to fix a Swift compiler crash (no workaround) caused by its `@optional` status with `NSError **`. Implementers must now provide this method. Affects projects since 2.1.0. ([#955](https://github.com/openid/AppAuth-iOS/pull/955))
- Swift callers now spell the method `resumeExternalUserAgentFlow(_:)`. Since the method is no longer optional, you don't need optional-chaining anymore. For those migrating from 2.1.0, replace `try session.resumeExternalUserAgentFlow?(with: url)` with `try session.resumeExternalUserAgentFlow(url)`. Objective-C callers are unaffected. ([#966](https://github.com/openid/AppAuth-iOS/pull/966))
- Replace case range with explicit case labels in OIDTokenUtilities. Addresses issue #947. ([#963](https://github.com/openid/AppAuth-iOS/pull/963))
Expand Down
Loading