Skip to content

feat(build): --bundle-id-suffix flag on build_patched_ipa.sh#16

Open
tkgstrator wants to merge 4 commits into
developfrom
feat/bundle-id-suffix
Open

feat(build): --bundle-id-suffix flag on build_patched_ipa.sh#16
tkgstrator wants to merge 4 commits into
developfrom
feat/bundle-id-suffix

Conversation

@tkgstrator

Copy link
Copy Markdown
Contributor

Summary

  • Add an optional --bundle-id-suffix SUFFIX flag to build_patched_ipa.sh.
  • When set, appends .<SUFFIX> to Payload/*.app/Info.plist CFBundleIdentifier before repacking, so the patched IPA can install side-by-side with the original App Store / Sideloadly copy of the same app.
  • Empty (default) is a byte-for-byte no-op — the existing "overwrite the original" flow is unchanged.

Idempotency

Re-running with the same suffix on an already-suffixed CFBundleIdentifier skips the rewrite instead of stacking .<SUFFIX>.<SUFFIX>.

Implementation

  • Reads CFBundleIdentifier via plistlib (through the same Python interpreter the rest of the pipeline uses).
  • Writes it via the existing tools.patch_plist module with --set CFBundleIdentifier=<new>, so binary/XML plist parity and existing keys stay untouched.

Test plan

  • build_patched_ipa.sh without --bundle-id-suffixCFBundleIdentifier unchanged (verified via plistlib on the output IPA).
  • build_patched_ipa.sh --bundle-id-suffix chinlanCFBundleIdentifier = com.acme.app.chinlan.
  • Re-run with same suffix → skip message, no double-append.

🤖 Generated with Claude Code

tkgstrator and others added 4 commits June 24, 2026 01:43
release: guard master against non-develop sources
chore: release v0.1.1
chore: release v0.1.2
Add an optional --bundle-id-suffix SUFFIX flag that rewrites the
Payload/*.app/Info.plist CFBundleIdentifier from ORIG to
ORIG.<SUFFIX> before repacking, so a patched IPA can install
side-by-side with the original App Store / Sideloadly copy of the
same app instead of overwriting it.

Empty (default) leaves the bundle id alone, keeping the existing
"overwrite" flow byte-for-byte. When set, the rewrite is idempotent —
re-running with the same suffix on an already-suffixed CFBundleIdentifier
skips the rewrite instead of stacking ".<SUFFIX>.<SUFFIX>".

Reads CFBundleIdentifier via plistlib (through the same interpreter the
rest of the pipeline uses) and writes it via the existing patch_plist
tool with --set, so binary/XML plist parity and existing keys stay
untouched.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.

1 participant