Skip to content

Fix App ID reuse when bundle identifier casing changes - #13

Open
Else00 wants to merge 2 commits into
nab138:apple-codesign-quickfrom
Else00:fix/app-id-case-insensitive
Open

Fix App ID reuse when bundle identifier casing changes#13
Else00 wants to merge 2 commits into
nab138:apple-codesign-quickfrom
Else00:fix/app-id-case-insensitive

Conversation

@Else00

@Else00 Else00 commented Sep 10, 2026

Copy link
Copy Markdown

Apple treats bundle IDs as case-insensitive, but isideload used exact string comparisons when looking up existing App IDs.

When an IPA changes an extension identifier from OpenYoutube.Extension to OpenYouTube.Extension, isideload attempts to register the same ID again, causing developer error 9401.

This patch:

  • Matches existing App IDs case-insensitively.
  • Preserves Apple's registered spelling in the main bundle and extensions.
  • Keeps exact-keyed provisioning profile and entitlement lookups aligned before signing.
  • Fails before mutating bundle identifiers if a required registration is missing.

Validation:

  • cargo check passed for the isideload library on arm64 macOS using iLoader's locked dependencies.
  • rustfmt --check passed for the modified application module.
  • iLoader was successfully rebuilt for arm64 macOS before this test-only removal.
  • Live installation of the affected YouTube IPA has not yet been verified.

Reference: https://developer.apple.com/help/glossary/bundle-id/

@Else00
Else00 changed the base branch from main to apple-codesign-quick September 10, 2026 13:48
@nab138

nab138 commented Sep 10, 2026

Copy link
Copy Markdown
Owner

Looks good to me on a quick glance, I will properly review and test either today or tommorow.

Also, while isideload definitely needs tests, right now it has none, and it doesn't make sense to start introducing them with this PR. I will revisit adding tests to isideload as a whole later on, but for now, could you remove the tests?

@Else00

Else00 commented Sep 11, 2026

Copy link
Copy Markdown
Author

Yeah sure!

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