Skip to content

Add Apple Watch companion app sideloading support - #12

Open
Rzbck wants to merge 1 commit into
nab138:apple-codesign-quickfrom
Rzbck:pr-watch-companion-support-20260910
Open

Rzbck wants to merge 1 commit into
nab138:apple-codesign-quickfrom
Rzbck:pr-watch-companion-support-20260910

Conversation

@Rzbck

@Rzbck Rzbck commented Sep 10, 2026

Copy link
Copy Markdown

Summary

Adds sideloading support for iOS applications that embed an Apple Watch
companion under Watch/*.app.

Embedded Watch applications are now included in bundle identifier rewriting,
provisioning, signing, and installation instead of being treated as opaque
child bundles.

Changes

  • discover embedded Apple Watch applications and nested app-ID-bearing bundles
  • rewrite Watch bundle identifiers and WKCompanionAppBundleIdentifier
  • provision iOS and watchOS App IDs separately
  • register paired Apple Watch devices for development provisioning
  • request watchOS-specific provisioning profiles
  • sign embedded Watch application content
  • install Watch companions through companion_proxy and streaming_zip_conduit
  • use fresh companion-proxy connections for forwarded Watch services
  • add unit coverage for watchOS provisioning and identifier rewriting

Validation

  • builds successfully on Windows, macOS, and Linux
  • cargo test -p isideload --lib passes
  • the Watch installation path was validated during development on a physical iPhone with a paired Apple Watch
  • the cleaned PR commit builds and passes its unit tests, but has not been separately re-run on physical hardware

Scope

This PR is limited to embedded Apple Watch companion applications.

HealthKit-specific capability handling is intentionally out of scope.
Independent Watch-only applications and every possible entitlement or nested
bundle configuration have not been validated.

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