diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1103d6b9d..344736312 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,25 +8,106 @@ on: branches: - "**" env: - CI_XCODE_14: /Applications/Xcode_14.2.app/Contents/Developer CI_XCODE_15: /Applications/Xcode_15.4.0.app/Contents/Developer - CI_XCODE_16: /Applications/Xcode_16.0.app/Contents/Developer + CI_XCODE_16: /Applications/Xcode_16.1.0.app/Contents/Developer jobs: - tests: + test-xcode: env: GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} timeout-minutes: 45 strategy: matrix: - script: - - test:ios - - test:macos - - test:parse_live_query:all - - xcode14 # runs build:starters on Xcode 14 - - xcode15 # runs build:starters on Xcode 15 - - xcode16 # runs build:starters on Xcode 16 + include: + # Xcode + - name: Xcode 15 + script: build:starters + iosVersion: '18.1' + iosDeviceModel: iPhone 16 + watchOsVersion: '11.1' + watchDeviceModel: Apple Watch Series 10 (46mm) + tvOsVersion: '18.1' + tvDeviceModel: Apple TV + macosVersion: 14 + developerDir: CI_XCODE_15 + - name: Xcode 16 + script: build:starters + iosVersion: '18.1' + iosDeviceModel: iPhone 16 + watchOsVersion: '11.1' + watchDeviceModel: Apple Watch Series 10 (46mm) + tvOsVersion: '18.1' + tvDeviceModel: Apple TV + macosVersion: 14 + developerDir: CI_XCODE_16 + # Core Module + - name: Core Module, iOS 17 + script: test:ios + iosVersion: '17.5' + iosDeviceModel: iPhone 15 + macosVersion: 15 + developerDir: CI_XCODE_16 + - name: Core Module, iOS 18 + script: test:ios + iosVersion: '18.1' + iosDeviceModel: iPhone 16 + macosVersion: 15 + developerDir: CI_XCODE_16 + - name: Core Module, macOS 14 + script: test:macos + macosVersion: 14 + developerDir: CI_XCODE_16 + - name: Core Module, macOS 15 + script: test:macos + macosVersion: 15 + developerDir: CI_XCODE_16 + # LiveQuery Module + - name: LiveQuery Module, iOS 17 + script: test:parse_live_query:ios + iosVersion: '17.5' + iosDeviceModel: iPhone 15 + macosVersion: 15 + developerDir: CI_XCODE_16 + - name: LiveQuery Module, iOS 18 + script: test:parse_live_query:ios + iosVersion: '18.1' + iosDeviceModel: iPhone 16 + macosVersion: 15 + developerDir: CI_XCODE_16 + - name: LiveQuery Module, macOS 14 + script: test:parse_live_query:osx + macosVersion: 14 + developerDir: CI_XCODE_15 + - name: LiveQuery Module, macOS 15 + script: test:parse_live_query:osx + macosVersion: 15 + developerDir: CI_XCODE_16 + - name: LiveQuery Module, watchOS 10 + script: test:parse_live_query:watchos + watchOsVersion: '10.5' + watchDeviceModel: Apple Watch Series 9 (45mm) + macosVersion: 15 + developerDir: CI_XCODE_15 + - name: LiveQuery Module, watchOS 11 + script: test:parse_live_query:watchos + watchOsVersion: '11.1' + watchDeviceModel: Apple Watch Series 10 (46mm) + macosVersion: 15 + developerDir: CI_XCODE_16 + - name: LiveQuery Module, tvOS 17 + script: test:parse_live_query:tvos + tvOsVersion: '17.5' + tvDeviceModel: Apple TV + macosVersion: 15 + developerDir: CI_XCODE_16 + - name: LiveQuery Module, tvOS 18 + script: test:parse_live_query:tvos + tvOsVersion: '18.1' + tvDeviceModel: Apple TV + macosVersion: 15 + developerDir: CI_XCODE_16 fail-fast: false - runs-on: ${{ ((matrix.script == 'xcode15' || matrix.script == 'xcode16') && 'macos-14') || 'macos-13' }} + runs-on: macos-${{ matrix.macosVersion }} + name: ${{ matrix.name }} steps: - uses: actions/checkout@v4 - name: Cache SPM @@ -49,9 +130,9 @@ jobs: - name: Submodules run: git submodule update --init --recursive - name: Build-Test - run: set -o pipefail && env NSUnbufferedIO=YES bundle exec rake ${{ ((matrix.script == 'xcode14' || matrix.script == 'xcode15' || matrix.script == 'xcode16') && 'build:starters') || matrix.script }} + run: set -o pipefail && env NSUnbufferedIO=YES IOS_VERSION="${{ matrix.iosVersion }}" IOS_DEVICE_MODEL="${{ matrix.iosDeviceModel }}" WATCH_DEVICE_MODEL="${{ matrix.watchDeviceModel }}" WATCH_OS_VERSION="${{ matrix.watchOsVersion }}" TV_DEVICE_MODEL="${{ matrix.tvDeviceModel }}" TV_OS_VERSION="${{ matrix.tvOsVersion }}" bundle exec rake ${{ matrix.script }} env: - DEVELOPER_DIR: ${{ (matrix.script == 'xcode15' && env.CI_XCODE_15) || (matrix.script == 'xcode16' && env.CI_XCODE_16) || env.CI_XCODE_14 }} + DEVELOPER_DIR: ${{ env[matrix.developerDir] }} - name: Generate Environment Variables if: ${{ always() }} env: @@ -68,7 +149,7 @@ jobs: echo "Build Result Location: $BUILD_RESULTS" - name: Upload Artifact Logs if: ${{ failure() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ env.ARTIFACT_NAME }} path: | @@ -103,7 +184,7 @@ jobs: plugin: xcode file: ${{ env.COVERAGE_PATH }} docs: - runs-on: macos-13 + runs-on: macos-14 timeout-minutes: 15 steps: - uses: actions/checkout@v4 @@ -117,7 +198,7 @@ jobs: run: | ./Scripts/jazzy.sh env: - DEVELOPER_DIR: ${{ env.CI_XCODE_14 }} + DEVELOPER_DIR: ${{ env.CI_XCODE_16 }} concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true diff --git a/.github/workflows/release-automated.yml b/.github/workflows/release-automated.yml index 3c6083792..120671f1d 100644 --- a/.github/workflows/release-automated.yml +++ b/.github/workflows/release-automated.yml @@ -3,11 +3,11 @@ on: push: branches: [ master, release, alpha, beta ] env: - CI_XCODE_14: '/Applications/Xcode_14.2.app/Contents/Developer' + CI_XCODE_16: /Applications/Xcode_16.1.0.app/Contents/Developer jobs: release: - runs-on: macos-13 + runs-on: macos-15 outputs: current_tag: ${{ steps.tag.outputs.current_tag }} steps: @@ -19,7 +19,10 @@ jobs: node-version: 22 cache: npm - name: Setup Ruby - uses: ruby/setup-ruby@359bebbc29cbe6c87da6bc9ea3bc930432750108 + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.1.0' + bundler-cache: true - name: Cache Gems id: cache-gems uses: actions/cache@v2 @@ -46,7 +49,7 @@ jobs: publish-docs: needs: release if: needs.release.outputs.current_tag != '' - runs-on: macos-13 + runs-on: macos-15 steps: - name: Checkout repository uses: actions/checkout@v4 @@ -62,7 +65,7 @@ jobs: run: | ./Scripts/jazzy.sh env: - DEVELOPER_DIR: ${{ env.CI_XCODE_14 }} + DEVELOPER_DIR: ${{ env.CI_XCODE_16 }} - name: Deploy Jazzy Docs uses: peaceiris/actions-gh-pages@v3 with: diff --git a/.github/workflows/release-manual-docs.yml b/.github/workflows/release-manual-docs.yml index a88ef4faf..74847c626 100644 --- a/.github/workflows/release-manual-docs.yml +++ b/.github/workflows/release-manual-docs.yml @@ -6,12 +6,12 @@ on: default: '' description: 'Version tag:' env: - CI_XCODE_14: '/Applications/Xcode_14.2.app/Contents/Developer' + CI_XCODE_16: /Applications/Xcode_16.1.0.app/Contents/Developer jobs: publish-docs: if: github.event.inputs.tag != '' - runs-on: macos-13 + runs-on: macos-15 steps: - name: Checkout repository uses: actions/checkout@v4 @@ -20,6 +20,7 @@ jobs: - name: Setup Ruby uses: ruby/setup-ruby@v1 with: + ruby-version: '3.1.0' bundler-cache: true - name: Submodules run: git submodule update --init --recursive @@ -27,7 +28,7 @@ jobs: run: | ./Scripts/jazzy.sh env: - DEVELOPER_DIR: ${{ env.CI_XCODE_14 }} + DEVELOPER_DIR: ${{ env.CI_XCODE_16 }} - name: Deploy Jazzy Docs uses: peaceiris/actions-gh-pages@v3 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bc5167aa..b9b30ca94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [5.0.0](https://github.com/parse-community/Parse-SDK-iOS-OSX/compare/4.2.0...5.0.0) (2025-01-28) + + +### Features + +* Remove support for Xcode 14 ([#1835](https://github.com/parse-community/Parse-SDK-iOS-OSX/issues/1835)) ([e94c4d5](https://github.com/parse-community/Parse-SDK-iOS-OSX/commit/e94c4d5498e0f1241dba88a89e0547b8e6cccccb)) + + +### BREAKING CHANGES + +* This release removes support for Xcode 14. ([e94c4d5](e94c4d5)) + # [4.2.0](https://github.com/parse-community/Parse-SDK-iOS-OSX/compare/4.1.2...4.2.0) (2024-11-30) diff --git a/Gemfile b/Gemfile index bcf060416..a22bf78f0 100644 --- a/Gemfile +++ b/Gemfile @@ -1,9 +1,9 @@ source 'https://rubygems.org' # Docs -gem 'jazzy', '~> 0.15.3' +gem 'jazzy', '0.15.3' # Development -gem 'xcpretty', '~> 0.4.0' -gem 'rake', '~> 13.2.1' -gem 'plist', '~> 3.7.1' +gem 'xcpretty', '0.3.0' +gem 'rake', '13.2.1' +gem 'plist', '3.7.1' diff --git a/Gemfile.lock b/Gemfile.lock index 255a43c70..7a0834d8f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -103,7 +103,7 @@ GEM rake (13.2.1) redcarpet (3.6.0) rexml (3.3.9) - rouge (3.28.0) + rouge (2.0.7) ruby-macho (2.5.1) sassc (2.4.0) ffi (~> 1.9) @@ -123,18 +123,18 @@ GEM colored2 (~> 3.1) nanaimo (~> 0.4.0) rexml (>= 3.3.6, < 4.0) - xcpretty (0.4.0) - rouge (~> 3.28.0) + xcpretty (0.3.0) + rouge (~> 2.0.7) PLATFORMS arm64-darwin x86_64-darwin DEPENDENCIES - jazzy (~> 0.15.3) - plist (~> 3.7.1) - rake (~> 13.2.1) - xcpretty (~> 0.4.0) + jazzy (= 0.15.3) + plist (= 3.7.1) + rake (= 13.2.1) + xcpretty (= 0.3.0) BUNDLED WITH 2.5.22 diff --git a/Parse/Parse.xcodeproj/xcshareddata/xcschemes/Parse-iOS.xcscheme b/Parse/Parse.xcodeproj/xcshareddata/xcschemes/Parse-iOS.xcscheme index c7e38565f..9e5527268 100644 --- a/Parse/Parse.xcodeproj/xcshareddata/xcschemes/Parse-iOS.xcscheme +++ b/Parse/Parse.xcodeproj/xcshareddata/xcschemes/Parse-iOS.xcscheme @@ -81,6 +81,12 @@ + + + + @@ -90,6 +96,9 @@ + + diff --git a/Parse/Parse.xcodeproj/xcshareddata/xcschemes/Parse-macOS.xcscheme b/Parse/Parse.xcodeproj/xcshareddata/xcschemes/Parse-macOS.xcscheme index 2b3c0355f..f2a1764f4 100644 --- a/Parse/Parse.xcodeproj/xcshareddata/xcschemes/Parse-macOS.xcscheme +++ b/Parse/Parse.xcodeproj/xcshareddata/xcschemes/Parse-macOS.xcscheme @@ -62,6 +62,11 @@ BlueprintName = "ParseUnitTests-macOS" ReferencedContainer = "container:Parse.xcodeproj"> + + + + diff --git a/Parse/Parse/Resources/Parse-OSX.Info.plist b/Parse/Parse/Resources/Parse-OSX.Info.plist index da55e4a58..15d46698d 100644 --- a/Parse/Parse/Resources/Parse-OSX.Info.plist +++ b/Parse/Parse/Resources/Parse-OSX.Info.plist @@ -13,10 +13,10 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 diff --git a/Parse/Parse/Resources/Parse-iOS.Info.plist b/Parse/Parse/Resources/Parse-iOS.Info.plist index dd962ed10..8161aae34 100644 --- a/Parse/Parse/Resources/Parse-iOS.Info.plist +++ b/Parse/Parse/Resources/Parse-iOS.Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleSupportedPlatforms @@ -21,7 +21,7 @@ iPhoneOS CFBundleVersion - 4.2.0 + 5.0.0 MinimumOSVersion 12.0 diff --git a/Parse/Parse/Resources/Parse-tvOS.Info.plist b/Parse/Parse/Resources/Parse-tvOS.Info.plist index 45ef74784..6b1f34b08 100644 --- a/Parse/Parse/Resources/Parse-tvOS.Info.plist +++ b/Parse/Parse/Resources/Parse-tvOS.Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 NSPrincipalClass diff --git a/Parse/Parse/Resources/Parse-watchOS.Info.plist b/Parse/Parse/Resources/Parse-watchOS.Info.plist index 45ef74784..6b1f34b08 100644 --- a/Parse/Parse/Resources/Parse-watchOS.Info.plist +++ b/Parse/Parse/Resources/Parse-watchOS.Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 NSPrincipalClass diff --git a/Parse/Parse/Source/PFConstants.h b/Parse/Parse/Source/PFConstants.h index 596c47f21..8dffc40fe 100644 --- a/Parse/Parse/Source/PFConstants.h +++ b/Parse/Parse/Source/PFConstants.h @@ -14,7 +14,7 @@ #pragma mark - SDK Version ///-------------------------------------- -#define PARSE_VERSION @"4.2.0" +#define PARSE_VERSION @"5.0.0" ///-------------------------------------- #pragma mark - Platform diff --git a/ParseLiveQuery/ParseLiveQuery-tvOS/Info.plist b/ParseLiveQuery/ParseLiveQuery-tvOS/Info.plist index f0092b162..aa47d10df 100644 --- a/ParseLiveQuery/ParseLiveQuery-tvOS/Info.plist +++ b/ParseLiveQuery/ParseLiveQuery-tvOS/Info.plist @@ -15,8 +15,8 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleVersion - 4.2.0 + 5.0.0 diff --git a/ParseLiveQuery/ParseLiveQuery-watchOS/Info.plist b/ParseLiveQuery/ParseLiveQuery-watchOS/Info.plist index f0092b162..aa47d10df 100644 --- a/ParseLiveQuery/ParseLiveQuery-watchOS/Info.plist +++ b/ParseLiveQuery/ParseLiveQuery-watchOS/Info.plist @@ -15,8 +15,8 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleVersion - 4.2.0 + 5.0.0 diff --git a/ParseLiveQuery/ParseLiveQuery/Resources/Info.plist b/ParseLiveQuery/ParseLiveQuery/Resources/Info.plist index 29a17dcb6..83020e391 100644 --- a/ParseLiveQuery/ParseLiveQuery/Resources/Info.plist +++ b/ParseLiveQuery/ParseLiveQuery/Resources/Info.plist @@ -15,10 +15,10 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 diff --git a/ParseStarterProject/OSX/ParseOSXStarterProject-Swift/Resources/Info.plist b/ParseStarterProject/OSX/ParseOSXStarterProject-Swift/Resources/Info.plist index ccc12b22c..8e54c3e44 100644 --- a/ParseStarterProject/OSX/ParseOSXStarterProject-Swift/Resources/Info.plist +++ b/ParseStarterProject/OSX/ParseOSXStarterProject-Swift/Resources/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) NSMainNibFile diff --git a/ParseStarterProject/OSX/ParseOSXStarterProject/Resources/Info.plist b/ParseStarterProject/OSX/ParseOSXStarterProject/Resources/Info.plist index cbbbe17e7..b7a41b371 100644 --- a/ParseStarterProject/OSX/ParseOSXStarterProject/Resources/Info.plist +++ b/ParseStarterProject/OSX/ParseOSXStarterProject/Resources/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSMainNibFile diff --git a/ParseStarterProject/iOS/ParseStarterProject-Swift/Resources/Info.plist b/ParseStarterProject/iOS/ParseStarterProject-Swift/Resources/Info.plist index 370b19820..bfe2e5ca8 100644 --- a/ParseStarterProject/iOS/ParseStarterProject-Swift/Resources/Info.plist +++ b/ParseStarterProject/iOS/ParseStarterProject-Swift/Resources/Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 LSRequiresIPhoneOS UILaunchStoryboardName diff --git a/ParseStarterProject/iOS/ParseStarterProject/Resources/Info.plist b/ParseStarterProject/iOS/ParseStarterProject/Resources/Info.plist index 3aa94516d..163cc197e 100644 --- a/ParseStarterProject/iOS/ParseStarterProject/Resources/Info.plist +++ b/ParseStarterProject/iOS/ParseStarterProject/Resources/Info.plist @@ -19,11 +19,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 LSRequiresIPhoneOS NSMainNibFile diff --git a/ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter/Info.plist b/ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter/Info.plist index 7f9246f93..d0bc2ee3a 100644 --- a/ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter/Info.plist +++ b/ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter/Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 LSRequiresIPhoneOS UIMainStoryboardFile diff --git a/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter Extension/Info.plist b/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter Extension/Info.plist index c021d59de..977582b26 100644 --- a/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter Extension/Info.plist +++ b/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter Extension/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType XPC! CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 NSExtension NSExtensionAttributes diff --git a/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter/Info.plist b/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter/Info.plist index 43560fd8f..119fa7cbe 100644 --- a/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter/Info.plist +++ b/ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 UISupportedInterfaceOrientations UIInterfaceOrientationPortrait diff --git a/ParseStarterProject/watchOS/ParseStarterProject-Swift/Resources/Info.plist b/ParseStarterProject/watchOS/ParseStarterProject-Swift/Resources/Info.plist index 77105372e..6728682cc 100644 --- a/ParseStarterProject/watchOS/ParseStarterProject-Swift/Resources/Info.plist +++ b/ParseStarterProject/watchOS/ParseStarterProject-Swift/Resources/Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.2.0 + 5.0.0 CFBundleSignature ???? CFBundleVersion - 4.2.0 + 5.0.0 LSRequiresIPhoneOS UIMainStoryboardFile diff --git a/README.md b/README.md index 08243bb99..99e4c4739 100644 --- a/README.md +++ b/README.md @@ -10,12 +10,6 @@ [![Coverage](https://img.shields.io/codecov/c/github/parse-community/Parse-SDK-iOS-OSX/master.svg)](https://codecov.io/github/parse-community/Parse-SDK-iOS-OSX?branch=master) [![auto-release](https://img.shields.io/badge/%F0%9F%9A%80-auto--release-9e34eb.svg)](https://github.com/parse-community/Parse-SDK-iOS-OSX/releases) -![iOS](https://img.shields.io/badge/iOS-12.0-green?style=flat) -![iPad](https://img.shields.io/badge/ipadOS-12.0-green?style=flat) -![macOS](https://img.shields.io/badge/macOS-10.15-green?style=flat) -![watchOS](https://img.shields.io/badge/watchOS-2.0-green?style=flat) -![tvOS](https://img.shields.io/badge/tvOS-12.0-green?style=flat) - ![SPM](https://img.shields.io/badge/Swift_Package_Manager-compatible-green?style=flat) [![Backers on Open Collective](https://opencollective.com/parse-server/backers/badge.svg)][open-collective-link] @@ -32,6 +26,9 @@ A library that gives you access to the powerful Parse Server backend from your i --- - [Getting Started](#getting-started) +- [Compatibility](#compatibility) + - [Parse Server](#parse-server) + - [Xcode, iOS, macOS, tvOS, watchOS](#xcode-ios-macos-tvos-watchos) - [How Do I Contribute?](#how-do-i-contribute) - [Dependencies](#dependencies) @@ -49,6 +46,27 @@ The easiest way to install the SDK is via Swift Package Manager. Take a look at the public [documentation][docs] & [API][api] and start building. +## Compatibility + +### Parse Server + +Parse Apple SDK is compatible with the following versions of Parse Server. + +| Parse Apple SDK | Parse Server | +|-----------------|--------------| +| 1.0.0 | >= 1.0.0 | + +### Xcode, iOS, macOS, tvOS, watchOS + +The Parse Apple SDK is continuously tested with the most recent releases of Xcode to ensure compatibility. We follow the annual release schedule of Xcode to support the current and previous major Xcode version. + +| Xcode Version | iOS Version | macOS Version | watchOS Version | tvOS Version | Release Date | End-of-Support Date | Parse Apple SDK Support | +|---------------|-------------|---------------|-----------------|--------------|----------------|---------------------|-------------------------| +| Xcode 13 | iOS 15 | macOS 12 | watchOS 8 | tvOS 15 | September 2021 | October 2023 | >= 1.19.3 <2.7.2 | +| Xcode 14 | iOS 16 | macOS 13 | watchOS 9 | tvOS 16 | September 2022 | October 2024 | >= 2.7.2 <= 5.0.0 | +| Xcode 15 | iOS 17 | macOS 14 | watchOS 10 | tvOS 17 | September 2023 | October 2025 | >= 3.0.0 | +| Xcode 16 | iOS 18 | macOS 15 | watchOS 11 | tvOS 18 | September 2024 | tbd | >= 4.2.0 | + ## How Do I Contribute? We want to make contributing to this project as easy and transparent as possible. Please refer to the [Contribution Guidelines][contributing]. diff --git a/Rakefile b/Rakefile index 7601b3812..53e858a06 100644 --- a/Rakefile +++ b/Rakefile @@ -12,9 +12,23 @@ require_relative 'Vendor/xctoolchain/Scripts/xctask/build_task' SCRIPT_PATH = File.expand_path(File.dirname(__FILE__)) starters_path = File.join(SCRIPT_PATH, 'ParseStarterProject') -ios_simulator = 'platform="iOS Simulator",name="iPhone 14"' -tvos_simulator = 'platform="tvOS Simulator",name="Apple TV"' -watchos_simulator = 'platform="watchOS Simulator",name="Apple Watch Series 8 (45mm)"' +ios_version = ENV.fetch('IOS_VERSION', '') +ios_device_model = ENV.fetch('IOS_DEVICE_MODEL', '') +tvos_version = ENV.fetch('TV_OS_VERSION', '') +tv_device_model = ENV.fetch('TV_DEVICE_MODEL', '') +watchos_version = ENV.fetch('WATCH_OS_VERSION', '') +watch_device_model = ENV.fetch('WATCH_DEVICE_MODEL', '') + +puts "IOS_VERSION: #{ios_version}" +puts "IOS_DEVICE_MODEL: #{ios_device_model}" +puts "TV_OS_VERSION: #{tvos_version}" +puts "TV_DEVICE_MODEL: #{tv_device_model}" +puts "WATCH_OS_VERSION: #{watchos_version}" +puts "WATCH_DEVICE_MODEL: #{watch_device_model}" + +ios_simulator = "platform=\"iOS Simulator\",name=\"#{ios_device_model}\",OS=\"#{ios_version}\"" +tvos_simulator = "platform=\"tvOS Simulator\",name=\"#{tv_device_model}\",OS=\"#{tvos_version}\"" +watchos_simulator = "platform=\"watchOS Simulator\",name=\"#{watch_device_model}\",OS=\"#{watchos_version}\"" build_action = [XCTask::BuildAction::CLEAN, XCTask::BuildAction::BUILD]; @@ -82,6 +96,9 @@ namespace :build do end task :objc do + puts 'Running iOS ObjC Starter Project' + puts "IOS_VERSION: #{ios_version}" + puts "IOS_DEVICE_MODEL: #{ios_device_model}" project = 'ParseStarterProject' ios_starters_path = File.join(starters_path, 'iOS', project) task = XCTask::BuildTask.new do |t| @@ -101,6 +118,9 @@ namespace :build do end task :swift do + puts 'Running iOS Swift Starter Project' + puts "IOS_VERSION: #{ios_version}" + puts "IOS_DEVICE_MODEL: #{ios_device_model}" project = 'ParseStarterProject-Swift' ios_starters_path = File.join(starters_path, 'iOS', project) task = XCTask::BuildTask.new do |t| @@ -127,6 +147,7 @@ namespace :build do end task :objc do + puts 'Running macOS ObjC Starter Project' macos_starter_folder = File.join(starters_path, 'OSX', 'ParseOSXStarterProject') task = XCTask::BuildTask.new do |t| t.directory = macos_starter_folder @@ -144,6 +165,7 @@ namespace :build do end task :swift do + puts 'Running macOS Swift Starter Project' macos_starter_folder = File.join(starters_path, 'OSX', 'ParseOSXStarterProject-Swift') task = XCTask::BuildTask.new do |t| t.directory = macos_starter_folder @@ -169,6 +191,9 @@ namespace :build do end task :swift do + puts 'Running tvOS Swift Starter Project' + puts "TV_OS_VERSION: #{tvos_version}" + puts "TV_DEVICE_MODEL: #{tv_device_model}" tvos_starter_folder = File.join(starters_path, 'tvOS', 'ParseStarterProject-Swift') task = XCTask::BuildTask.new do |t| t.directory = tvos_starter_folder @@ -194,6 +219,9 @@ namespace :build do end task :swift do + puts 'Running watchOS Swift Starter Project' + puts "WATCH_OS_VERSION: #{watchos_version}" + puts "WATCH_DEVICE_MODEL: #{watch_device_model}" watchos_starter_folder = File.join(starters_path, 'watchOS', 'ParseStarterProject-Swift') task = XCTask::BuildTask.new do |t| t.directory = watchos_starter_folder @@ -218,6 +246,7 @@ namespace :build do end task :objc do + puts 'Running Live Query macOS ObjC Starter Project' live_query_starter_folder = File.join(SCRIPT_PATH, 'ParseLiveQuery', 'Examples') task = XCTask::BuildTask.new do |t| t.directory = live_query_starter_folder @@ -235,6 +264,7 @@ namespace :build do end task :swift do + puts 'Running Live Query macOS Swift Starter Project' live_query_starter_folder = File.join(SCRIPT_PATH, 'ParseLiveQuery', 'Examples') task = XCTask::BuildTask.new do |t| t.directory = live_query_starter_folder @@ -265,6 +295,9 @@ end namespace :test do desc 'Run iOS Tests' task :ios do |_, args| + puts 'Running iOS Tests' + puts "IOS_VERSION: #{ios_version}" + puts "IOS_DEVICE_MODEL: #{ios_device_model}" task = XCTask::BuildTask.new do |t| t.directory = SCRIPT_PATH t.workspace = 'Parse.xcworkspace' @@ -283,6 +316,7 @@ namespace :test do desc 'Run macOS Tests' task :macos do |_, args| + puts 'Running macOS Tests' task = XCTask::BuildTask.new do |t| t.directory = SCRIPT_PATH t.workspace = 'Parse.xcworkspace' @@ -307,6 +341,9 @@ namespace :test do end task :ios do + puts 'Running ParseLiveQuery iOS Tests' + puts "IOS_VERSION: #{ios_version}" + puts "IOS_DEVICE_MODEL: #{ios_device_model}" task = XCTask::BuildTask.new do |t| t.directory = SCRIPT_PATH t.workspace = 'Parse.xcworkspace' @@ -324,6 +361,9 @@ namespace :test do end task :tvos do + puts 'Running ParseLiveQuery tvOS Tests' + puts "TV_OS_VERSION: #{tvos_version}" + puts "TV_DEVICE_MODEL: #{tv_device_model}" task = XCTask::BuildTask.new do |t| t.directory = SCRIPT_PATH t.workspace = 'Parse.xcworkspace' @@ -340,6 +380,9 @@ namespace :test do end task :watchos do + puts 'Running ParseLiveQuery watchOS Tests' + puts "WATCH_OS_VERSION: #{watchos_version}" + puts "WATCH_DEVICE_MODEL: #{watch_device_model}" task = XCTask::BuildTask.new do |t| t.directory = SCRIPT_PATH t.workspace = 'Parse.xcworkspace' @@ -356,6 +399,7 @@ namespace :test do end task :osx do + puts 'Running ParseLiveQuery macOS Tests' task = XCTask::BuildTask.new do |t| t.directory = SCRIPT_PATH t.workspace = 'Parse.xcworkspace' diff --git a/package-lock.json b/package-lock.json index b837d8a81..d8663a08d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "parse-sdk-ios-osx", - "version": "4.2.0", + "version": "5.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "parse-sdk-ios-osx", - "version": "4.2.0", + "version": "5.0.0", "devDependencies": { "@semantic-release/changelog": "6.0.3", "@semantic-release/commit-analyzer": "13.0.1", diff --git a/package.json b/package.json index d32e8a1e7..dc064c34b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parse-sdk-ios-osx", - "version": "4.2.0", + "version": "5.0.0", "private": true, "repository": { "type": "git",