Skip to content

fix(ios): respect app minimum in generated CocoaPods targets - #8379

Merged
brow merged 2 commits into
mainfrom
fix-ios-pod-deployment-minimum
Oct 16, 2026
Merged

brow merged 2 commits into
mainfrom
fix-ios-pod-deployment-minimum

Conversation

@brow

@brow brow commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Xcode 27 rejects generated CocoaPods targets with deployment versions below iOS 15, even though the app already requires iOS 16. Raise lower explicit pod deployment targets to the existing iOS 16 minimum during installation, preserving targets that require a newer version.

Validation

On main at 7852b16, the ordinary unsigned Release build with exact Xcode 27.0 failed on pod targets set to iOS 9–13. After this change and a normal pod install, none of the 189 generated build configurations specifies a target below iOS 16, and the same build passes deployment-target validation without a command-line override.

The full build remains blocked by the independent swift-secp256k1 0.21.1 UInt256.words compiler ambiguity. This PR does not fix or change that dependency. Xcode pin buzz-releases#110 remains gated on a complete ordinary release build and its other prerequisites.

Related: Wes’s PR #8330 independently includes a similar Podfile fix alongside DeviceHub changes. This PR contains only the Podfile floor and its lockfile checksum. Full local just ci passed; focused iOS validation above is complete. The regenerated lockfile changes only the Podfile checksum; pod install --deployment succeeds with CocoaPods 1.16.2.

@brow

brow commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-16T00:01:59.499678Z c5ae8d0 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c5ae8d091c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/ios/Podfile Resolved
@brow brow changed the title Respect the app iOS minimum in generated CocoaPods targets fix(ios): respect app minimum in generated CocoaPods targets Oct 15, 2026
@brow
brow marked this pull request as ready for review October 15, 2026 23:59
@brow
brow requested a review from a team as a code owner October 15, 2026 23:59
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Oct 16, 2026
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

🔐 Codex Security Review

Note: This is an automated, security-focused review generated by Codex.
Use it as a supplement to human review; false positives are possible.

Scope

  • Exact PR diff: 7852b1670c7588875fc43ef2613c8348893d5ab6...0959d4c58b344135a1c66f504cab130bd040ecbf
  • Model: gpt-6.1-sol

💡 Click "edited" above to see earlier reviews for this PR.


Review Summary

Overall Risk: NONE

No concrete security, correctness, or reliability findings. The CocoaPods deployment minimum matches the existing iOS app minimum, and the updated lockfile checksum matches the Podfile.

Findings

No concrete security, correctness, or reliability findings were identified.

Notes

  • Review used read-only source and history inspection. Builds and tests were not run, as instructed.

Generated by Codex Security Review |
Requested by: @brow |
Workflow run

@github-actions github-actions Bot removed the codex-security-review-current The posted Codex security review matches its recorded range. label Oct 16, 2026
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Oct 16, 2026

@jedwards27 jedwards27 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Verdict: APPROVE

Reviewed 7852b1670c7588875fc43ef2613c8348893d5ab6..0959d4c58b344135a1c66f504cab130bd040ecbf at exact head 0959d4c58b344135a1c66f504cab130bd040ecbf.

Risk: high — this changes CocoaPods-generated iOS build settings and the checked-in lockfile, so install/native-build compatibility is the material boundary.

Findings: no blocking or non-blocking code defect found. mobile/ios/Podfile:38-48 applies Flutter's settings first, then raises only explicit pod deployment targets below the app's existing iOS 16 minimum. Missing targets remain inherited; 16.0 and newer targets remain unchanged. The follow-up commit changes only mobile/ios/Podfile.lock:230; the new checksum exactly matches the Podfile SHA-1, with no dependency or CocoaPods-version churn. This affects generated-project build compatibility, not the supported-device floor or installed-app runtime behavior.

Author action: none.

Verification owner: CI/release gate for the complete exact-head native jobs; reviewer/tooling or the named release/dependency follow-up for independent Xcode 27 full-build evidence.

Validation at matching head:

  • clean immutable checkout; live PR/base/merge-base pinned; git diff --check passed;
  • ruby -c mobile/ios/Podfile passed;
  • independent Podfile SHA-1 matched ed10001903303a0ae660957e1d727012a3136046 in the lockfile;
  • production-Podfile boundary probes passed for inherited/nil, older, equal, and newer targets, and failed causally when the rewrite was removed;
  • just mobile-install and just mobile-check passed;
  • exact-head CI passed mobile checks, three mobile test shards, Android, Swift package build/release/test, and the complete unsigned iOS Release build. The parallel native lane was still running its complete simulator build at review submission; merge readiness remains owned by that required gate.

Manual/native evidence: no UI/runtime path changed, so app launch was not material. Reviewer-side pod install --deployment and local native compilation were blocked by this host's unaccepted Xcode 27 license; I am not counting that attempt as product proof. Exact-head CI supplies the native build evidence above.

Residual risk: the PR's stated complete Xcode 27 build remains blocked beyond the deployment-target check by the independent swift-secp256k1 compiler ambiguity. That is release/dependency-gate ownership, not an author-actionable defect introduced here.

@brow
brow merged commit 46159fc into main Oct 16, 2026
47 checks passed
@brow
brow deleted the fix-ios-pod-deployment-minimum branch October 16, 2026 00:32
wpfleger96 pushed a commit that referenced this pull request Oct 16, 2026
…i-bindings

* origin/main:
  feat(mobile): find people by name through the relay's name-only profile search (#8333)
  fix(ios): respect app minimum in generated CocoaPods targets (#8379)
  fix(relay): confirm requested channels in one membership query (#8378)
  fix(mobile): split channel history batches at the relay channel cap (#8342)
  fix(search): normalize profile name tiers in one place (#8334)

Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
wpfleger96 pushed a commit that referenced this pull request Oct 16, 2026
… into duncan/bbpublic-nip-fi-resolver

* origin/duncan/bbpublic-nip-fi-bindings:
  feat(mobile): find people by name through the relay's name-only profile search (#8333)
  fix(ios): respect app minimum in generated CocoaPods targets (#8379)
  fix(relay): confirm requested channels in one membership query (#8378)
  fix(mobile): split channel history batches at the relay channel cap (#8342)
  fix(search): normalize profile name tiers in one place (#8334)

Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
wpfleger96 pushed a commit that referenced this pull request Oct 16, 2026
…ogging

* origin/main:
  feat(mobile): find people by name through the relay's name-only profile search (#8333)
  fix(ios): respect app minimum in generated CocoaPods targets (#8379)
  fix(relay): confirm requested channels in one membership query (#8378)
  fix(mobile): split channel history batches at the relay channel cap (#8342)

Co-authored-by: Will Pfleger <[email protected]>
Signed-off-by: Will Pfleger <[email protected]>

# Conflicts:
#	crates/buzz-relay/src/handlers/count.rs
#	crates/buzz-relay/src/handlers/req.rs
brow added a commit that referenced this pull request Oct 16, 2026
Document Xcode 27.0 as the recommended iOS development toolchain while
retaining Xcode 26 compatibility. Explain per-command selection, the
known Flutter native-assets compiler/SDK mismatch on hosts with multiple
Xcode versions, and where CI and release toolchains are configured.

The compatibility changes are already merged in
[#8379](#8379) and
[#8398](#8398). Related open work is
[#8330](#8330); this PR changes
documentation only. The release version bump remains separate in
[buzz-releases#110](squareup/buzz-releases#110).

### Validation

- Ordinary unsigned Release build passed on [main at
7396243](7396243)
with exact Xcode 27.0 (27A266a), the pinned Flutter SDK, and normal
CocoaPods installation. Buzz.app contains NotificationService.appex. No
dependency patches or plugin-validation bypasses were used.
- The merged direct-C change passed native tests on Xcode 26.5 and 27.0,
full local CI, and hosted Native and unsigned Release validation. This
documentation-only follow-up preserves that code.
- Documentation diff checks and local pre-push checks passed.

---------

Signed-off-by: Tom Brow <[email protected]>
brow added a commit that referenced this pull request Oct 16, 2026
`just mobile-dev` fails on Xcode 27 machines that have DeviceHub instead
of Simulator. Resolve the simulator frontend inside the selected Xcode
installation: DeviceHub for Xcode 27, or Simulator for Xcode 26. Launch
by full path so an older installed or running app cannot determine the
choice.

This extracts the still-needed DeviceHub portion of Wes's
[#8330](#8330). The CocoaPods
deployment-target work already landed in
[#8379](#8379); this PR does not
change Podfile or its lockfile.

CI and pre-push mobile selection include the shared Justfile and mobile
recipe regression script, so edits to either run the regression in the
mobile gate.

### Validation

- Nine production-recipe checks pass, covering side-by-side Xcode 26/27
selection with spaces in paths, missing apps, launch failure, and
gateway argument forwarding. Mutations reject unqualified Launch
Services lookup and removal of DeviceHub selection.
- All 39 tests of the pinned paths-filter action pass, including the
Justfile and recipe-test selection cases. Mobile formatting, analysis,
and the full mobile suite pass.
- Native macOS smoke checks exercised launch from the selected Xcode
installation and reached the Flutter boundary. Flutter and identity
setup were stubbed, so no app was built or installed.
- The initial full local CI gate stopped on an unchanged ACP
signal-cancellation test; that exact test passed in isolation. The
initial pre-push run also hit missing dependencies and two unchanged
desktop agent-discovery tests. Desktop lint and TypeScript checks passed
after installing pinned dependencies. Publishing used the authorized
local-hook exception.
- Current-head
[CI](https://github.com/block/buzz/actions/runs/38963831198) passed,
including all nine recipe cases and native Swift validation. Owner
approval and Codex code/security reviews are complete with no unresolved
findings.


buzz-review-completed

---------

Signed-off-by: Tom Brow <[email protected]>
RossHartmann pushed a commit to Kiingo/buzz that referenced this pull request Oct 16, 2026
)

Xcode 27 rejects generated CocoaPods targets with deployment versions
below iOS 15, even though the app already requires iOS 16. Raise lower
explicit pod deployment targets to the existing iOS 16 minimum during
installation, preserving targets that require a newer version.

On main at 7852b16, the ordinary unsigned Release build with exact
Xcode 27.0 failed on pod targets set to iOS 9–13. After this change and
a normal pod install, none of the 189 generated build configurations
specifies a target below iOS 16, and the same build passes
deployment-target validation without a command-line override.

The full build remains blocked by the independent swift-secp256k1 0.21.1
`UInt256.words` compiler ambiguity. This PR does not fix or change that
dependency. Xcode pin
[buzz-releases#110](squareup/buzz-releases#110)
remains gated on a complete ordinary release build and its other
prerequisites.

Related: Wes’s [PR block#8330](block#8330)
independently includes a similar Podfile fix alongside DeviceHub
changes. This PR contains only the Podfile floor and its lockfile
checksum. Full local `just ci` passed; focused iOS validation above is
complete. The regenerated lockfile changes only the Podfile checksum;
`pod install --deployment` succeeds with CocoaPods 1.16.2.

---------

Signed-off-by: Tom Brow <[email protected]>
(cherry picked from commit 46159fc)
Signed-off-by: Ross Hartmann <[email protected]>
RossHartmann pushed a commit to Kiingo/buzz that referenced this pull request Oct 16, 2026
)

Xcode 27 rejects generated CocoaPods targets with deployment versions
below iOS 15, even though the app already requires iOS 16. Raise lower
explicit pod deployment targets to the existing iOS 16 minimum during
installation, preserving targets that require a newer version.

On main at 7852b16, the ordinary unsigned Release build with exact
Xcode 27.0 failed on pod targets set to iOS 9–13. After this change and
a normal pod install, none of the 189 generated build configurations
specifies a target below iOS 16, and the same build passes
deployment-target validation without a command-line override.

The full build remains blocked by the independent swift-secp256k1 0.21.1
`UInt256.words` compiler ambiguity. This PR does not fix or change that
dependency. Xcode pin
[buzz-releases#110](squareup/buzz-releases#110)
remains gated on a complete ordinary release build and its other
prerequisites.

Related: Wes’s [PR block#8330](block#8330)
independently includes a similar Podfile fix alongside DeviceHub
changes. This PR contains only the Podfile floor and its lockfile
checksum. Full local `just ci` passed; focused iOS validation above is
complete. The regenerated lockfile changes only the Podfile checksum;
`pod install --deployment` succeeds with CocoaPods 1.16.2.

---------

Signed-off-by: Tom Brow <[email protected]>
(cherry picked from commit 46159fc)
Signed-off-by: Ross Hartmann <[email protected]>
RossHartmann pushed a commit to Kiingo/buzz that referenced this pull request Oct 16, 2026
)

Xcode 27 rejects generated CocoaPods targets with deployment versions
below iOS 15, even though the app already requires iOS 16. Raise lower
explicit pod deployment targets to the existing iOS 16 minimum during
installation, preserving targets that require a newer version.

On main at 7852b16, the ordinary unsigned Release build with exact
Xcode 27.0 failed on pod targets set to iOS 9–13. After this change and
a normal pod install, none of the 189 generated build configurations
specifies a target below iOS 16, and the same build passes
deployment-target validation without a command-line override.

The full build remains blocked by the independent swift-secp256k1 0.21.1
`UInt256.words` compiler ambiguity. This PR does not fix or change that
dependency. Xcode pin
[buzz-releases#110](squareup/buzz-releases#110)
remains gated on a complete ordinary release build and its other
prerequisites.

Related: Wes’s [PR block#8330](block#8330)
independently includes a similar Podfile fix alongside DeviceHub
changes. This PR contains only the Podfile floor and its lockfile
checksum. Full local `just ci` passed; focused iOS validation above is
complete. The regenerated lockfile changes only the Podfile checksum;
`pod install --deployment` succeeds with CocoaPods 1.16.2.

---------

Signed-off-by: Tom Brow <[email protected]>
(cherry picked from commit 46159fc)
Signed-off-by: Ross Hartmann <[email protected]>
RossHartmann pushed a commit to Kiingo/buzz that referenced this pull request Oct 17, 2026
)

Xcode 27 rejects generated CocoaPods targets with deployment versions
below iOS 15, even though the app already requires iOS 16. Raise lower
explicit pod deployment targets to the existing iOS 16 minimum during
installation, preserving targets that require a newer version.

On main at 7852b16, the ordinary unsigned Release build with exact
Xcode 27.0 failed on pod targets set to iOS 9–13. After this change and
a normal pod install, none of the 189 generated build configurations
specifies a target below iOS 16, and the same build passes
deployment-target validation without a command-line override.

The full build remains blocked by the independent swift-secp256k1 0.21.1
`UInt256.words` compiler ambiguity. This PR does not fix or change that
dependency. Xcode pin
[buzz-releases#110](https://github.com/squareup/buzz-releases/pull/110)
remains gated on a complete ordinary release build and its other
prerequisites.

Related: Wes’s [PR block#8330](block#8330)
independently includes a similar Podfile fix alongside DeviceHub
changes. This PR contains only the Podfile floor and its lockfile
checksum. Full local `just ci` passed; focused iOS validation above is
complete. The regenerated lockfile changes only the Podfile checksum;
`pod install --deployment` succeeds with CocoaPods 1.16.2.

---------

Signed-off-by: Tom Brow <[email protected]>
(cherry picked from commit 46159fc)
Signed-off-by: Ross Hartmann <[email protected]>

This branch was previously deployed

1 inactive deployment
codex-review — 0959d4c5 Deployed Oct 16, 2026 by brow via Run Codex Security Review #8424
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

codex-security-review-current The posted Codex security review matches its recorded range.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants