Skip to content

fix(cli): preserve detected iOS target in Builder onboarding - #3202

Draft
WcaleNieWolny wants to merge 1 commit into
mainfrom
wolny/fix-build-init-ios-target
Draft

fix(cli): preserve detected iOS target in Builder onboarding#3202
WcaleNieWolny wants to merge 1 commit into
mainfrom
wolny/fix-build-init-ios-target

Conversation

@WcaleNieWolny

@WcaleNieWolny WcaleNieWolny commented Aug 25, 2026

Copy link
Copy Markdown
Member

Summary

  • map the authoritative Release bundle ID to its matching Xcode application target
  • persist the detected target as CAPGO_IOS_TARGET during iOS Builder onboarding
  • prevent custom-target projects from falling back to the nonexistent App target during marketing-version handling
  • add regression coverage for the Dinnerish / com.dinnerish.app case with multiple application targets

Testing

  • bun run cli:check
  • focused bundle-ID detector and iOS tail handoff regression tests

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Review in cubic

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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

@sonarqubecloud

Copy link
Copy Markdown

@codspeed-hq

codspeed-hq Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 43 untouched benchmarks
⏩ 2 skipped benchmarks1


Comparing wolny/fix-build-init-ios-target (2cf1dd0) with main (3633ef8)

Open in CodSpeed

Footnotes

  1. 2 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@dimin4241-svg dimin4241-svg 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.

The selected Xcode target needs to follow the effective provisioning bundle ID.

const distribution = isImport ? (progress.importDistribution || 'app_store') : 'app_store'
let iosTarget: string | undefined
try {
iosTarget = deps.detectBundleIds?.().iosTarget ?? undefined

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This ignores the effective provisioningBundleId resolved just above. When a user has verified progress.iosBundleIdOverride, the provisioning map is keyed by that override, but CAPGO_IOS_TARGET still comes from the detector’s original Release-ID candidate. In a multi-application project this can make Builder choose one target while supplying a profile for another. Please resolve the target against provisioningBundleId (or omit the override unless they match), and extend the existing override-priority test to assert CAPGO_IOS_TARGET too.

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.

2 participants