Modernize SDVersion for 2025: Full device support, SPM, Privacy Manifest, and CI#101
Merged
Modernize SDVersion for 2025: Full device support, SPM, Privacy Manifest, and CI#101
Conversation
Corrected several issues identified during comprehensive code review: watchOS screen size detection: - Fixed screen height values for Series 7/8/9/10 and Ultra watches - 41mm now correctly uses 215pt (was incorrectly 205pt) - 44mm now correctly uses 224pt (was incorrectly 215pt) - 45mm now correctly uses 242pt (was incorrectly 224pt) - 46mm now correctly uses 248pt (was incorrectly 227pt) - 49mm Ultra now uses only 251pt (removed erroneous 242pt) - Added documentation comments explaining pixel-to-point conversions macOS Apple Silicon chip detection: - Fixed M4 Pro/Max chip assignment for MacBook Pro models - Mac16,6 (14" MBP) now correctly maps to M4 Pro (was M4 Max) - Mac16,8 (14" MBP) now correctly maps to M4 Max (was M4 Pro) - Added inline comments clarifying model-to-chip mappings Package.swift: - Added privacy manifest as bundled resource for all platform targets - Ensures App Store compliance for SPM-based installations GitHub Actions CI: - Fixed iOS build scheme from SDVersion to SDiOSVersion - Matches the actual target name in the Xcode project 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The macos-14 runner doesn't have Xcode 16 pre-installed, causing all build jobs to fail when attempting to select a non-existent path. Switched to macos-15 which includes Xcode 16 by default, eliminating the need for explicit xcode-select commands. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The SDVersion umbrella target was causing SPM build failures due to invalid header layout - SPM doesn't allow subdirectories alongside an umbrella header. Changes: - Removed the umbrella SDVersion product/target - Users now import platform-specific libraries directly: - SDiOSVersion for iOS/iPadOS - SDMacVersion for macOS - SDwatchOSVersion for watchOS - SDtvOSVersion for tvOS - Changed resource rule from .copy to .process for proper bundling - Updated README with clearer SPM dependency example This matches how the library was always intended to be used - with platform-specific imports rather than a single umbrella. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The swift build command was trying to compile all targets including SDwatchOSVersion, which requires WatchKit headers not available on macOS. Explicitly build only the SDMacVersion product to avoid this. The other platform targets (iOS, watchOS, tvOS) are already verified through their respective xcodebuild jobs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The --product flag doesn't work for automatic products in SPM. Using --target SDMacVersion to build only the macOS target. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What's Changed
This PR brings SDVersion up to date after years of dormancy, adding support for all Apple devices released between 2018-2024 and modernizing the library infrastructure to meet current App Store and developer expectations.
New Device Support
iOS
watchOS
tvOS
AppleTV4toAppleTVHDfor claritymacOS
isAppleSilicon,chipType, andchipNamemethodsInfrastructure
Package.swiftwith proper platform targetsPrivacyInfo.xcprivacyfor App Store compliance (required since May 2024)Documentation
Bug Fixes (from QA audit)
Breaking Changes
AppleTV4renamed toAppleTVHDTest Plan
swift buildcompletes without errorspod lib lintpasses