-
Notifications
You must be signed in to change notification settings - Fork 78
Downgrade Availability to iOS 16 #215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Updates iCloud sync and calendar access features to require iOS 17+ where necessary, with runtime checks and UI adjustments for unsupported versions. Refactors calendar and microphone permission requests for iOS 17+ APIs, conditionally enables/disables iCloud sync UI and actions, and improves SyncEngine to guard all CloudKit operations with availability checks. Bumps marketing version to 4.4.6 and updates developer scripts for Python typing compatibility.
Eliminated #available(iOS 17, macCatalyst 17, *) checks in SyncEngine to allow scheduleUploadIfNeeded to run on all supported platforms. Added @unchecked @retroactive Sendable conformance to CKRecord, CKRecordZone, and CKRecordZone.ID to support concurrency.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
flowdown-landing | 9bbc1f4 | Commit Preview URL Branch Preview URL |
Jan 04 2026, 05:34 AM |
There was a problem hiding this 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 pull request lowers the iOS deployment target from iOS 17 to iOS 16, enhancing app availability while maintaining backward compatibility. The key changes include adding version checks for iOS 17+ specific APIs, conditionally enabling iCloud sync features based on OS version support, and updating permission request methods for calendar and microphone access to use appropriate APIs for each iOS version.
Key Changes:
- Downgraded iOS deployment target from 17.0 to 16.0 across project configurations and Swift packages
- Added version-specific checks for iCloud sync functionality, which requires iOS 17+
- Updated calendar and microphone permission request methods to use version-appropriate APIs
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| Resources/DevKit/scripts/i18n_tools.py | Updated type hints for Python 3.8 compatibility |
| Frameworks/Storage/Sources/Storage/Sync/SyncEngine.swift | Added iOS 17+ availability checks for sync engine initialization and operations |
| Frameworks/Storage/Sources/Storage/Sync/Internal/*.swift | Added macCatalyst 17 availability annotations to sync protocols and implementations |
| FlowDown/Resources/Localizable.xcstrings | Added localized strings for iOS version unavailability messages |
| FlowDown/Interface/SettingController/DataControl/*.swift | Conditionally display sync controls based on iOS version support |
| FlowDown/Interface/RichEditor/Supplement/BlockButton.swift | Guarded trait change registration with iOS 17+ check |
| FlowDown/Interface/RichEditor/SimpleSpeech/*.swift | Updated microphone permission requests for version compatibility |
| FlowDown/Backend/ModelTools/CalendarTools/*.swift | Updated calendar permission requests to use appropriate APIs per iOS version |
| FlowDown/Configuration/Version.xcconfig | Bumped marketing version to 4.4.6 |
| FlowDown.xcodeproj/project.pbxproj | Changed IPHONEOS_DEPLOYMENT_TARGET from 17.0 to 16.0 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This pull request improves compatibility with iOS 16, updates calendar and microphone permission handling for different iOS versions, and enhances the user interface to better reflect iCloud sync availability depending on the OS version. It also contains minor updates to build scripts and the app version.
iOS Compatibility and iCloud Sync Availability:
Permission Handling Improvements:
requestFullAccessToEventsfor iOS 17+ andrequestAccess(to:)for earlier versions, ensuring compatibility and proper permission prompts. [1] [2] [3] [4] [5]SimpleSpeechControllerto useAVAudioApplicationfor iOS 17+ and fall back toAVAudioSessionfor earlier versions.Build and Versioning:
UI/UX Improvements: