Skip to content

Use app deltas for faster and smaller incremental iOS app installs #67580

@jmagman

Description

@jmagman

Figure out how to get app deltas working in Xcode/ios-deploy to avoid recopying the same files across installs.

@anirudhb started this investigation #60408 (comment):

fwiw I did try the new ios-deploy with app deltas, but it seems that Flutter builds the app in such a way that app deltas copies the entire app again (including Flutter.framework, which shouldn't've even changed.)

The app install time is extremely noticeable over wireless, whereas over USB it's not as significant.

and #60408 (comment):

I did some investigation on this, and the gist of it is that Xcode only uses modification time to determine whether to copy a file or not. Some things in the build that change modification time include code signing and framework thinning. Cocoapods additionally does this as well (this could be an upstream issue). After modifying the scripts to preserve modification time across codesign/thin, Xcode was successfully able to use app deltas! edit: Crazy run errors including a white screen on launch.

A proper implementation of this would probably involve hash comparisons, since Xcode doesn't do this for some reason when computing app deltas.

Metadata

Metadata

Assignees

Labels

P3Issues that are less important to the Flutter projectc: new featureNothing broken; request for a new capabilityplatform-iosiOS applications specificallyt: xcode"xcodebuild" on iOS and general Xcode project managementtoolAffects the "flutter" command-line tool. See also t: labels.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions