Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Faster bundle installation #545

Open
michaeleisel opened this issue Feb 28, 2022 · 9 comments
Open

Faster bundle installation #545

michaeleisel opened this issue Feb 28, 2022 · 9 comments

Comments

@michaeleisel
Copy link

I have a number of cases where I want to improve bundle installation speed and can't really leverage --app_deltas. E.g., because the two versions of the same app have few files in common (especially the binary), or because I don't want to risk cache invalidation. I'm wondering if there's any known way of speeding installation up. For example, I wonder if there's a way of sending a compressed bundle to the phone that it will uncompress itself, in the same way that it uncompresses downloads from the App Store. Are there any ideas for how to speed up bundle installation? And if there are, and they aren't in ios-deploy yet, I'd be happy to add them myself.

@gabebear
Copy link

gabebear commented Mar 1, 2022

We are mostly at Apple’s mercy here since we are just using Apple’s APIs to install and don’t have a lot we can change. If you can find a faster way to install your binary in Xcode that would be something we could investigate(to match Xcode’s speed).

@michaeleisel
Copy link
Author

I see, so Xcode is known to be faster? Is Xcode using APIs that simply haven't been reverse engineered and used yet, or is there some special entitlement/privilege that allows Xcode special APIs we couldn't use?

@gabebear
Copy link

gabebear commented Mar 1, 2022

I believe ios-deploy and Xcode are essentially identical in speed right now. If Xcode does do something substantially faster that would be something to investigate.

@ivanhernandez13
Copy link

ios-deploy is using the same API as Xcode for installation (AMDeviceSecureInstallApplicationBundle) as of last time we checked (~a year ago?). From sampling a dummy app installation with Xcode 13.2.1 just now, it looks like Xcode is still using the same thing.

@michaeleisel
Copy link
Author

I'm seeing a ~1 minute install time for an app using Xcode, and a ~3 minute install time using ios-deploy

@michaeleisel
Copy link
Author

ideviceinstaller is also much faster for me

@gabebear
Copy link

@michaeleisel Can you share a test-case with us so we can reproduce the issue?

  • IPA size
  • command-line arguments
  • Anything that would help us reproduce the issue

@michaeleisel
Copy link
Author

Bundle size is 150mb, command-line args are simple, ideviceinstaller -i MyApp.app vs. ios-deploy --bundle MyApp.app

@DanboDuan
Copy link

DanboDuan commented Jul 19, 2022

ideviceinstaller usecom.apple.afc service to transfer application bundle. there is also someone using com.apple.streaming_zip_conduit service to transfer application bundle like go-ios. Both ios-deploy and Xcode use com.apple.streaming_zip_conduit 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

No branches or pull requests

4 participants