Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Aug 13, 2025

This PR removes CocoaPods and Carthage support from FDTake as requested in #74, modernizing the project to use Swift Package Manager exclusively. This simplifies the project structure and aligns with modern Swift development practices.

Changes Made

Removed Files and Dependencies

  • Removed FDTake.podspec - CocoaPods specification file
  • Removed Tests/CheckCocoaPodsQualityIndexes.rb - CocoaPods quality validation script
  • Removed iOS Example/iOS Example.xcworkspace - Xcode workspace that was used for CocoaPods/Carthage integration

Proper CocoaPods Cleanup

  • Used pod deintegrate to properly clean up any remaining CocoaPods integration from the iOS Example project
  • Verified complete removal of all CocoaPods remnants and build settings

Fixed Build Issues

  • Updated imports from deprecated MobileCoreServices to UniformTypeIdentifiers
    • Replaced kUTTypeImage with UTType.image.identifier
    • Replaced kUTTypeMovie with UTType.movie.identifier
    • This fixes build issues on modern iOS versions where MobileCoreServices is deprecated

Updated CI/CD

  • Fixed GitHub Actions workflow with valid device identifiers and iOS versions
    • Uses working combinations: iOS 17.5/iPhone 15 Pro, iOS 16.4/iPhone 14 Pro, iOS 15.5/iPhone 13
    • Updated to Xcode 15.4 for compatibility
    • Referenced Alamofire's proven CI configuration for reliability
  • Improved test coverage to build both Swift Package and iOS Example app
  • Removed CocoaPods validation job from CI pipeline

Documentation Updates

  • Updated README.md: Removed CocoaPods and Carthage installation sections and badges
  • Updated CONTRIBUTING.md: Removed CocoaPods release process steps
  • Updated CHANGELOG.md to document these breaking changes
  • Cleaned up .gitignore to remove CocoaPods/Carthage sections

Breaking Changes

⚠️ This is a breaking change for users currently using CocoaPods or Carthage.

Migration Path:

  • From CocoaPods: Remove FDTake from your Podfile and add it via Swift Package Manager in Xcode (File > Swift Packages > Add Package Dependency)
  • From Carthage: Remove FDTake from your Cartfile and add it via Swift Package Manager

Benefits

  1. Simplified project structure - No more complex workspace setup
  2. Modern dependency management - Swift Package Manager is Apple's recommended approach
  3. Reduced maintenance burden - No need to maintain multiple package manager configurations
  4. Better iOS compatibility - Fixed deprecated API usage and reliable CI testing

Closes #74


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@fulldecent
Copy link
Owner

Looks like copilot doesn't understand to use the cocoapods deintegrate tool...

Copilot AI and others added 4 commits August 13, 2025 21:09
Co-authored-by: fulldecent <382183+fulldecent@users.noreply.github.com>
…t SPM package

Co-authored-by: fulldecent <382183+fulldecent@users.noreply.github.com>
Co-authored-by: fulldecent <382183+fulldecent@users.noreply.github.com>
Copilot AI changed the title [WIP] Rip out cocoapods, and carthage. This means getting rid of the XC workspace and instead using an XC project. Also, you will be updating the documentation as needed. And you need to ensure that the tests passed. Or at least as many tests as were working... Remove CocoaPods and Carthage support, modernize to Swift Package Manager only Aug 13, 2025
Copilot AI requested a review from fulldecent August 13, 2025 21:16
@fulldecent
Copy link
Owner

@copilot your test failed because you are not using a valid device identifier and/or version

carefully study available versions from documentation and also look up how alimofire is doing their CI to get ideas

and then try again here to update tests so you can get a passing build

…Pods cleanup

Co-authored-by: fulldecent <382183+fulldecent@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Aug 13, 2025

Looks like copilot doesn't understand to use the cocoapods deintegrate tool...

You're absolutely right! I've now properly used pod deintegrate to clean up any remaining CocoaPods integration. The command found and cleaned up some remnants that weren't visible in the file system. Fixed in commit ac6306a.

Copy link
Contributor Author

Copilot AI commented Aug 13, 2025

@copilot your test failed because you are not using a valid device identifier and/or version

carefully study available versions from documentation and also look up how alimofire is doing their CI t...

Fixed the CI configuration with valid device identifiers and iOS versions based on Alamofire's successful setup. Updated to use working combinations like "OS=17.5,name=iPhone 15 Pro" and compatible Xcode 15.4. Also improved the test approach to build both the Swift Package and iOS Example app. Changes in commit ac6306a.

@fulldecent fulldecent marked this pull request as ready for review August 13, 2025 23:20
Copy link
Owner

@fulldecent fulldecent left a comment

Choose a reason for hiding this comment

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

Got the tests to pass. Good to ship

@fulldecent fulldecent merged commit 0a559a3 into main Aug 13, 2025
3 checks passed
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.

didDeny called when canceling from the action sheet

2 participants