Skip to content

[Minor][Feature]: Update min ios and Xcode versions#2918

Open
josephpab wants to merge 18 commits intodevfrom
josephpab/minVersionBump
Open

[Minor][Feature]: Update min ios and Xcode versions#2918
josephpab wants to merge 18 commits intodevfrom
josephpab/minVersionBump

Conversation

@josephpab
Copy link
Copy Markdown
Contributor

PR Title Format

Required Format: [Keyword1] [Keyword2]: Description

  • Keyword1: major, minor, or patch (case-insensitive)
  • Keyword2: feature, bugfix, engg, or tests (case-insensitive)

Examples:

  • [MAJOR] [Feature]: new API
  • [minor] [bugfix]: fix crash
  • [PATCH] [tests]: add coverage

Proposed changes

Describe what this PR is trying to do.

Type of change

  • Feature work
  • Bug fix
  • Documentation
  • Engineering change
  • Test
  • Logging/Telemetry

Risk

  • High – Errors could cause MAJOR regression of many scenarios. (Example: new large features or high level infrastructure changes)
  • Medium – Errors could cause regression of 1 or more scenarios. (Example: somewhat complex bug fixes, small new features)
  • Small – No issues are expected. (Example: Very small bug fixes, string changes, or configuration settings changes)

Additional information

Update Xcode project settings to raise the iOS minimum deployment target to 17.0 across MSAL and sample apps. Also remove explicit ENABLE_BITCODE = NO entries where present. Files updated: MSAL/MSAL.xcodeproj/project.pbxproj, Samples/ios/SampleApp/SampleAppiOS.xcodeproj/project.pbxproj, and Samples/ios/SampleAppiOS-Swift/SampleAppiOS-Swift.xcodeproj/project.pbxproj to align targets and clean up deprecated bitcode flags.
Increase iOS deployment target to 17.0 (MSAL.podspec and Package.swift) and update Azure Pipelines to use macos-latest images and Xcode_26.3. Adjust simulator destinations to iPhone 17 Pro Max and update xcode-select invocations across automation, broker_submodule_check, pr-validation, tests-with-conf-file, and visionos-validation pipeline files to align CI with the newer Xcode/macOS environment.
Copilot AI review requested due to automatic review settings April 1, 2026 18:53
@josephpab josephpab requested review from a team as code owners April 1, 2026 18:53
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the project’s minimum iOS deployment target and attempts to align CI/build tooling to newer Apple toolchain settings across MSAL, distribution manifests (SPM/CocoaPods), sample apps, and Azure Pipelines.

Changes:

  • Bump IPHONEOS_DEPLOYMENT_TARGET to iOS 17.0 across MSAL and sample Xcode projects.
  • Update distribution minimums (SPM Package.swift, CocoaPods MSAL.podspec) to iOS 17.0.
  • Adjust Azure Pipelines to use macos-latest, switch to a newer Xcode selection, and update iOS simulator destinations.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
Samples/ios/SampleAppiOS-Swift/SampleAppiOS-Swift.xcodeproj/project.pbxproj Raises sample Swift app deployment target(s) to iOS 17.0.
Samples/ios/SampleApp/SampleAppiOS.xcodeproj/project.pbxproj Raises sample ObjC app deployment target(s) to iOS 17.0.
Package.swift Updates SPM platform minimum to iOS 17 (and keeps macOS/visionOS entries).
MSAL/MSAL.xcodeproj/project.pbxproj Raises MSAL iOS deployment target(s) to 17.0 and removes explicit Bitcode settings.
MSAL.podspec Raises CocoaPods iOS deployment target to 17.0.
azure_pipelines/visionos-validation.yml Switches pool image to macos-latest and updates Xcode selection in visionOS validation jobs.
azure_pipelines/templates/tests-with-conf-file.yml Updates Xcode selection used by automation test template.
azure_pipelines/pr-validation.yml Switches pool image to macos-latest, updates Xcode selection, and changes iOS simulator destination used for E2E runs.
azure_pipelines/broker_submodule_check.yml Switches pool image to macos-latest and updates Xcode selection.
azure_pipelines/automation.yml Switches pool image to macos-latest and changes iOS simulator destination used for scheduled automation runs.

Update Azure Pipelines YAML to select Xcode 26.3 and create a stable /Applications/Xcode.app symlink. Replaces the single-line '/bin/bash -c' invocations with multiline script blocks and adds `sudo ln -sfn /Applications/Xcode_26.3.app /Applications/Xcode.app` to ensure CI tools reference the intended Xcode installation. Modified files: broker_submodule_check.yml, pr-validation.yml, templates/tests-with-conf-file.yml, visionos-validation.yml.
Copilot AI review requested due to automatic review settings April 1, 2026 21:32
Co-authored-by: Copilot <[email protected]>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Add a Bash step to locate the generated .xctestrun in build/Build/Products, set XCTESTRUN_PATH as a pipeline variable, and fail with a clear error if none is found. Replace hardcoded full_path parameters in automation and pr-validation pipelines with the discovered $(XCTESTRUN_PATH) so xcodebuild uses the dynamically found file. This removes brittle, machine-specific xctestrun paths and improves pipeline resilience.
Copilot AI review requested due to automatic review settings April 1, 2026 21:42
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.

Update simulator device and OS version used for tests. Modified azure_pipelines/automation.yml and azure_pipelines/pr-validation.yml to include OS=26.2 in the simulator -destination, and updated build.py simulator constants (device type, exact name, and destination string) to match iPhone 17 Pro Max (26.2). This aligns CI and local build scripts to run against the same simulator version.
Broaden and harden .xctestrun discovery in the Azure Pipelines test template: print search results, search the entire build tree for .xctestrun files, and provide clearer error logging and recursive listing when none are found. Also update the SPM integration test xcodebuild destination to an iPhone 17 Pro Max with iOS 26.2 to use the newer simulator configuration.
Copilot AI review requested due to automatic review settings April 1, 2026 22:22
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 8 comments.

Update Azure Pipelines to use macOS-26.3.0 instead of macos-latest across pipeline files. Provide explicit full_path parameters for generated .xctestrun files in automation and PR validation jobs and use that parameter in the tests-with-conf-file template instead of dynamically discovering the file. Improve the xcodebuild step by enabling pipefail and redirecting stderr to tee|xcpretty for better logging, and remove the separate discovery step. Files updated: azure_pipelines/{automation.yml,broker_submodule_check.yml,pr-validation.yml,visionos-validation.yml,templates/tests-with-conf-file.yml}.
Replace explicit 'macOS-26.3.0' vmImage with the generic 'macOS-26' across Azure Pipeline YAMLs. Updated azure_pipelines/automation.yml, broker_submodule_check.yml, pr-validation.yml, and visionos-validation.yml to standardize the macOS agent image reference.
Copilot AI review requested due to automatic review settings April 2, 2026 03:18
Replace occurrences of 'macOS-26' with 'macos-26' in Azure Pipelines YAML files to ensure consistent VM image identifiers and avoid potential agent pool lookup issues. Changes applied to azure_pipelines/automation.yml, broker_submodule_check.yml, pr-validation.yml, and visionos-validation.yml.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated no new comments.

Replace deprecated 'macos-26' VM image with 'macos-latest' across Azure Pipelines to ensure CI uses the current macOS hosted runner. Updated files: azure_pipelines/automation.yml, broker_submodule_check.yml, pr-validation.yml, and visionos-validation.yml.
Update the full_path for MSAL Mac Native Auth E2E Tests from macosx26.3 to macosx26.2 in azure_pipelines/automation.yml and azure_pipelines/pr-validation.yml so the pipelines point to the correct .xctestrun build artifact (aligns with current SDK/Xcode build output).
Copilot AI review requested due to automatic review settings April 2, 2026 04:09
Remove hard-coded .xctestrun/full_path parameters from CI job configs and update the test template to invoke xcodebuild using the workspace, scheme and sdk with a derivedDataPath. This makes test runs less dependent on generated .xctestrun product paths and consolidates test invocation options (retry, destination, parallel/iterations, result bundle). Files changed: azure_pipelines/automation.yml, azure_pipelines/pr-validation.yml, and azure_pipelines/templates/tests-with-conf-file.yml.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (2)

azure_pipelines/pr-validation.yml:183

  • Issue: The macOS E2E test job references an .xctestrun path containing macosx26.2. Impact: This SDK version naming is unlikely to match any real Xcode-generated .xctestrun output, so test execution can fail due to missing file. Recommendation: Use the actual macOS SDK version string produced by xcodebuild for the selected Xcode (or derive the .xctestrun filename instead of hard-coding the SDK version).
    parameters:
      schema: 'MSAL Mac Native Auth E2E Tests'
      destination: 'platform=macOS'
      sdk: 'macosx'
      retry_tests: false

azure_pipelines/automation.yml:81

  • Issue: The macOS native auth E2E job uses an .xctestrun path containing macosx26.2. Impact: That SDK version is not valid and likely won’t match the file produced by xcodebuild build-for-testing, causing test execution failures. Recommendation: Update the expected .xctestrun path to match a real macOS SDK version for the selected Xcode, or capture the generated .xctestrun path from the build output instead of hard-coding it.
      schema: 'MSAL Mac Native Auth E2E Tests'
      destination: 'platform=macOS'
      sdk: 'macosx'
      retry_tests: 'false'

- job: cocoapods_lib_lint
  displayName: Run Cocoapods lib lint

Remove reliance on `set -o pipefail` and add an explicit check for xcodebuild's exit status. Capture BUILD_EXIT from ${PIPESTATUS[0]}; if non-zero, emit an error, print the last 200 lines of the raw xcodebuild log in a grouped section, and exit with the original code. This ensures build-for-testing failures are surfaced clearly and cause the job to fail.
Copilot AI review requested due to automatic review settings April 2, 2026 19:18
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants