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",