PSA: Using "Only Cook Modifed Content" from project launcher can hugely reduce iteration times

In the past if I had a bug or I was fine tuning an asset for a particular iOS device for each change I would do a full cook and deploy the entire package to the device, this resulted in iteration times of about 5-6 minutes which very quickly added up to many hours if I was debugging a crash or issue that only showed up on the device. I realized recently that for situations like this you can use “Only Cook Modifed Content” in the project launcher along with using a “file server” deploy like so:

This will only copy the executable binary to the device and leaves all BPs and assets to be served on the fly as the device needs it. Using this method reduced my iteration times to less than a minute! All I need to do now to test a change in a uasset on a device is make the change in the editor, restart the cook server, and relaunch the app on the device and it will pull just the changed uasset down from the cook server and show your changes immediately.

Here is the full workflow to quickly test changes in uassets on device:

  1. Build and deploy the game to your device using project launcher making sure to enable the options in the screenshot above. Alternatively you can do it all from the command line using the appropriate UAT or UBT commands.
  2. Make a change in a uasset
  3. Relaunch the cook server by launching the editor from the command line like so:
    “C:\Program Files\Epic Games\UE_4.27\Engine\Binaries\Win64\UE4Editor.exe” [full path to uproject file] -run=cook -cookonthefly -unattended -iterate
  4. Launch the app on your device and test your changes
  5. Go back to step 2 and repeat as needed until your issue is resolved.

Just wanted to share this incase it helps somebody else, I know it would have helped me a lot if I had known about this workflow earlier. I only used this for iOS but everything here is platform agnostic so it should work just fine for android as well.