Remote Tool chain in 4.1, clarifications

Hi Team,

2 questions

1- How do you populate configurations such as remote machine name for IOSToolChain ? I can see it inherits from an abstract class RemoteToolChain and in comments it is mentioned that xml configuration is used to populate “PontetialServerNames” but i cant really find a sample xml configurations to show how excaltly and properly instantiate IOSToolChain or MacToolChain

2- what exactly is ue.IOSDangerouslyFastMode . after manually hard coding the machine name because of question number 1 above, (very bad i know , but wanted to get remote build working and figure the code out a bit) I notice the build fails because no UEGame.stub file is generated only UEGame file is generated, after digging around a bit it seems that, this is the logic to generate stub file (It is located at UEBuildIOS line 248)

public override void SetupBinaries(UEBuildTarget InBuildTarget)
{
if (ExternalExecution.GetRuntimePlatform () != UnrealTargetPlatform.Mac)
{
// dangerously fast mode doesn’t generate stub files
if (!IOSToolChain.bUseDangerouslyFastMode)
{

so the real question I guess would be, what is .stub file ? why will it not get generated if i try to build for iphone using remote tool ? and what exactly bUseDangerouslyFastMode mean ?

Thanks

any feedback on this ?

Thanks

Hi pyropace,

Sorry there has been a delay in us getting back to you.

1 - The xml file mentioned is BuildConfiguration.xml. this lives in a few places, but ultimately you can find a copy here: Engine/Programs/UnrealBuildTool/BuildConfiguration.xml. This xml file follows the format of

<Configuration>
   <MyClassName>
      <MyPropertyName>MyPropertyValue</MyPropertyName>
   </MyClassName>
</Configuration>

So for the Remote toolchain changes you desire, something like this will work:

<Configuration>
	<RemoteToolChain>
		<PotentialServerNames>
			<Item>MyMacBookAir</Item>
			<Item>MyMacPro</Item>
		</PotentialServerNames>
		
		<RemoteServerName>MyMacMini</RemoteServerName>
	</RemoteToolChain>
</Configuration>

For class properties in the IosToolChain, you’d simply replace MyClassName in the first example, and replace MyPropertyName and the MyPropertyValue with the setting you desire from that class.

2 - bUseDangerouslyFastMode was added a while ago to decrease the iteration time of IOS changes when developing from windows. By enabling the bUseDangerouslyFastMode flag you are asking the remote tool chain to skip any of the post compile steps we do which packages the stub. The stub is basically what becomes the IPA which is installed on the IOS device.
Further reading: .ipa - Wikipedia

Hope this helps
Terence

Thank you , great explanation