Skip to content

Basic support for CocoaPods tooling - #43

Merged
PatrickCroninMM merged 3 commits into
mainfrom
pcronin/sco-9090-device-ios-supports-cocoapods-tooling
Aug 12, 2026
Merged

Basic support for CocoaPods tooling#43
PatrickCroninMM merged 3 commits into
mainfrom
pcronin/sco-9090-device-ios-supports-cocoapods-tooling

Conversation

@PatrickCroninMM

@PatrickCroninMM PatrickCroninMM commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Noting that the official CocoaPods registry is moving into read-only mode in December this year, we have customers who still use and depend on CocoaPods tooling for their apps. We do not want to add code to the official registry as this library is new and is likely to need updates; we don't want to have a buggy version locked in the official registry when it becomes read-only.

We can still support customers that use CocoaPods tooling by adding a Podspec file to the repo, and this PR does that.

Summary by CodeRabbit

  • New Features

    • Added CocoaPods support for installing the MinFraudDevice iOS SDK from tagged releases.
    • Included privacy manifest resources and documented iOS and Swift requirements.
  • Documentation

    • Added CocoaPods installation instructions and release-tag guidance.
    • Updated release procedures to include podspec versioning and installation verification.
    • Added an unreleased 0.1.1 changelog entry.
  • Tests

    • Added automated podspec validation, including version matching and iOS library linting.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@PatrickCroninMM, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 33 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 89e2722c-d12f-4dfd-932f-7598973da091

📥 Commits

Reviewing files that changed from the base of the PR and between 68e6c96 and d8fc12f.

📒 Files selected for processing (2)
  • README.md
  • Sources/MinFraudDevice/ObjC/MMDeviceTracker.swift
📝 Walkthrough

Walkthrough

The SDK adds CocoaPods packaging through a new podspec. CI validates the podspec and synchronizes its version with SDKConfig.swift. The README, development guide, and changelog document installation and release procedures.

Changes

CocoaPods distribution

Layer / File(s) Summary
CocoaPods specification
MinFraudDevice.podspec
Defines SDK metadata, Git tag sourcing, iOS and Swift requirements, Swift source inclusion, and the privacy manifest resource bundle.
Podspec CI validation
.github/workflows/ci.yml
Adds version checks, conditional CocoaPods installation, Xcode setup, and verbose iOS podspec linting.
Installation and release process
README.md, README.dev.md, CHANGELOG.md
Documents Git-tag installation, version synchronization, release steps, post-release verification, and the unreleased 0.1.1 entry.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Developer
  participant GitRepository
  participant CocoaPods
  participant GitHubActions

  Developer->>GitRepository: Adds podspec and release tag
  CocoaPods->>GitRepository: Fetches SDK from tag
  GitHubActions->>GitRepository: Reads podspec and SDK versions
  GitHubActions->>CocoaPods: Runs podspec lint
  CocoaPods-->>GitHubActions: Returns validation result
Loading

Poem

A rabbit finds a podspec neat,
With tags and privacy tucked beneath.
CI checks each version bright,
CocoaPods hops through the night.
Release notes guide every leap.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the pull request, which adds CocoaPods support through a podspec, CI linting, and documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch pcronin/sco-9090-device-ios-supports-cocoapods-tooling

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Line 34: Update the README installation example to use tag 0.1.1, the first
tag containing MinFraudDevice.podspec. Ensure the release version in
SDKConfig.swift and MinFraudDevice.podspec is set consistently to 0.1.1 before
creating or referencing that tag.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 1f1dd4d1-4d47-447c-aaaa-e3a81f2d5659

📥 Commits

Reviewing files that changed from the base of the PR and between 43759cd and 68e6c96.

📒 Files selected for processing (5)
  • .github/workflows/ci.yml
  • CHANGELOG.md
  • MinFraudDevice.podspec
  • README.dev.md
  • README.md

Comment thread README.md
@PatrickCroninMM
PatrickCroninMM force-pushed the pcronin/sco-9090-device-ios-supports-cocoapods-tooling branch from 20d8ab6 to d8fc12f Compare August 12, 2026 15:00

@mm-kevcenteno mm-kevcenteno left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

A couple of questions that might actually be requests for changes.

Comment thread MinFraudDevice.podspec
@@ -0,0 +1,23 @@
Pod::Spec.new do |s|
s.name = 'MinFraudDevice'
s.version = '0.1.0'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Does this need to be 0.1.1 or do we have to wait for the tag to exist before updating the value?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

It will need to be 0.1.1, but at the point of this PR that version doesn't exist yet so I didn't want to include it in the documentation. It'll be updated in a release PR immediately following.

Comment thread README.md
uses CocoaPods, add the pod to your `Podfile`, pointing at a release tag:

```ruby
pod 'MinFraudDevice', :git => 'https://github.com/maxmind/device-ios.git', :tag => '0.1.0'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Does this need to be 0.1.1 or do we have to wait for the tag to exist before updating the value?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Ah, code rabbit already caught this.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

It will need to be 0.1.1, but at the point of this PR that version doesn't exist yet so I didn't want to include it in the documentation. It'll be updated in a release PR immediately following.

@PatrickCroninMM
PatrickCroninMM merged commit d1dc413 into main Aug 12, 2026
26 checks passed
@PatrickCroninMM
PatrickCroninMM deleted the pcronin/sco-9090-device-ios-supports-cocoapods-tooling branch August 12, 2026 16:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants