Repository navigation
Conversation
CocoaPods trunk stops accepting new podspecs on December 2, 2026, so a podspec dependency on Courier_iOS can't reach versions released after that. On React Native 0.75+, declare it with spm_dependency instead: CocoaPods adds courier-ios as a Swift package to the Pods project and resolves it from the GitHub tag. React Native versions without spm_dependency fall back to s.dependency and stay on the last Courier_iOS published to trunk. The pin moves into a courier_ios_version variable that both paths share. Tested on the example app (React Native 0.85, iOS Simulator): Debug and Release with the default static libraries, and Release with USE_FRAMEWORKS=static. Courier_iOS's resource bundle is embedded, and the native inbox and preferences views load messages. CI installs pods with `pod install` (Courier_iOS is no longer a pod), checks Podfile.lock doesn't list it, and checks the Swift package resolved to the podspec's pin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
|
Closing for now. We're shipping the CocoaPods releases first and will pick up Swift Package Manager later. The branch stays so this can be reopened. |
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.
Pulls Courier_iOS through Swift Package Manager on React Native 0.75+, and releases as 6.1.0. CocoaPods trunk stopped taking Courier_iOS releases after 6.0.7 (it goes read-only on December 2, 2026), so a podspec dependency on
Courier_iOScan't reach anything newer.Changes
spm_dependencyis available (React Native 0.75+), the podspec addscourier-iosas a Swift package to the Pods project, pinned exactly. Older React Native falls back tos.dependency "Courier_iOS"and stays on the last version published to trunk.courier_ios_version(6.0.8) feedsspm_dependencyand moves with every Courier_iOS release.courier_ios_trunk_version(6.0.7) is the CocoaPods fallback and stays on the last version trunk has, so older React Native never asks trunk for a version it doesn't have.package.jsonand both native agent strings.Podfile.lockno longer lists Courier_iOS. The Swift Package Manager lockfile Xcode writes is gitignored, since the podspec pins the version exactly.build-iosrunspod install, becausepod update Courier_iOSfails now that it isn't a pod. It fails ifPodfile.lockstill lists Courier_iOS, and checks that the resolved package matches the podspec pin.Testing
Rebuilt 2026-11-06 on main + 6.0.8:
pod installadds Courier_iOS as a Swift package andPodfile.lockno longer lists it; the workspace resolvescourier-ios6.0.8; the Release build succeeds on Xcode 27.2. The end-to-end run on 6.0.8 (sign in, inbox, push, preferences) is next, once the example's key is updated.Earlier testing (Nov 3, on 5.9.0):
example-085(React Native 0.85.3), iPhone 16 Pro simulator, Xcode 27.USE_FRAMEWORKS=static: Release builds and the inbox loads. Debug fails to link on React Native's own debug-only symbols (facebook::react::Sealable,getDebugProps).mainfails the same way with Courier_iOS from CocoaPods.spm_dependencyprints a warning that SPM packages with static linking "might cause linker errors". Neither static setup above showed any for Courier_iOS.Notes
Podfile.lockstill lists the Courier_iOS pod until its nextpod install.main: after the app relaunches, the inbox reports "Courier Inbox is not initialized" until the user signs in again.🤖 Generated with Claude Code