Exception when cooking for iOS

Hi,

I’m trying to make an iOS package in my build server via Jenkins.
And the exception raised when the cooking get started.

I would appreciate if you could investigate this.
Thank you.

Environments

  • Mac: CPU i5, RAM 8GB, GPU GTX 660M
  • OSX: 10.11.5
  • Jenkins: 2.19.1
  • UE: 4.13.1 from GitHub

Command in Jenkins

Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -verbose -nop4 -project="MyProject/MyProject.uproject" -targetplatform=IOS -clientconfig=Shipping -build -cook -stage -pak -package -archive -archivedirectory="MyProject/Archive"

Logs in Jenkins (partial)

...
UE4Editor: [2016.10.31-11.30.50:679][ 0]LogUObjectArray: 35322 objects as part of root set at end of initial load.
UE4Editor: [2016.10.31-11.30.50:736][ 0]LogUObjectAllocator: 7656704 out of 0 bytes used by permanent object pool.
UE4Editor: [2016.10.31-11.30.50:736][ 0]LogUObjectArray: CloseDisregardForGC: 0/0 objects in disregard for GC pool
UE4Editor: [2016.10.31-11.34.16:041][ 0]LogMac: FGenericPlatformMisc::RaiseException(unsigned int) Address = 0xb0032bb (filename not found) [in UE4Editor-Core.dylib]
UE4Editor: FOutputDeviceMacError::Serialize(wchar_t const*, ELogVerbosity::Type, FName const&) Address = 0xb1c0082 (filename not found) [in UE4Editor-Core.dylib]
UE4Editor: FOutputDevice::Logf(wchar_t const*, ...) Address = 0xb23bb07 (filename not found) [in UE4Editor-Core.dylib]
UE4Editor: FDebug::AssertFailed(char const*, char const*, int, wchar_t const*, ...) Address = 0xb23725b (filename not found) [in UE4Editor-Core.dylib]
UE4Editor: FTexturePlatformData::GetNumNonStreamingMips() const Address = 0xe0b55b4 (filename not found) [in UE4Editor-Engine.dylib]
UE4Editor: SerializePlatformData(FArchive&, FTexturePlatformData*, UTexture*, bool, bool) Address = 0xe0d19f2 (filename not found) [in UE4Editor-Engine.dylib]
UE4Editor: UTexture::SerializeCookedPlatformData(FArchive&) Address = 0xe0aedc2 (filename not found) [in UE4Editor-Engine.dylib]
UE4Editor: UTexture2D::Serialize(FArchive&) Address = 0xe0aded1 (filename not found) [in UE4Editor-Engine.dylib]
UE4Editor: FArchiveSaveTagExports::ProcessTaggedObjects() Address = 0xbe4be88 (filename not found) [in UE4Editor-CoreUObject.dylib]
UE4Editor: FPackageExportTagger::TagPackageExports(FArchiveSaveTagExports&, bool) Address = 0xbe759c3 (filename not found) [in UE4Editor-CoreUObject.dylib]
UE4Editor: UPackage::Save(UPackage*, UObject*, EObjectFlags, wchar_t const*, FOutputDevice*, FLinkerLoad*, bool, bool, unsigned int, ITargetPlatform const*, FDateTime const&, bool) Address = 0xbe529f7 (filename not found) [in UE4Editor-CoreUObject.dylib]
UE4Editor: UEditorEngine::Save(UPackage*, UObject*, EObjectFlags, wchar_t const*, FOutputDevice*, FLinkerLoad*, bool, bool, unsigned int, ITargetPlatform const*, FDateTime const&, bool) Address = 0x13518bee (filename not found) [in UE4Editor-UnrealEd.dylib]
UE4Editor: UCookOnTheFlyServer::SaveCookedPackage(UPackage*, unsigned int, bool&, TArray<FName, FDefaultAllocator>&) Address = 0x132cf7fa (filename not found) [in UE4Editor-UnrealEd.dylib]
UE4Editor: UCookOnTheFlyServer::TickCookOnTheSide(float, unsigned int&) Address = 0x132bd5e8 (filename not found) [in UE4Editor-UnrealEd.dylib]
UE4Editor: UCookCommandlet::NewCook(TArray<ITargetPlatform*, FDefaultAllocator> const&, TArray<FString, FDefaultAllocator>&) Address = 0x130ef8c9 (filename not found) [in UE4Editor-UnrealEd.dylib]
UE4Editor: UCookCommandlet::Main(FString const&) Address = 0x130e8329 (filename not found) [in UE4Editor-UnrealEd.dylib]
UE4Editor: FEngineLoop::PreInit(wchar_t const*) Address = 0xaf228f9 (filename not found) [in UE4Editor]
UE4Editor: GuardedMain(wchar_t const*) Address = 0xaf34031 (filename not found) [in UE4Editor]
UE4Editor: -[UE4AppDelegate runGameThread:] Address = 0xaf4861c (filename not found) [in UE4Editor]
UE4Editor: -[FCocoaGameThread main] Address = 0xb161fe6 (filename not found) [in UE4Editor-Core.dylib]
UE4Editor: __NSThread__start__() Address = 0x91f4ce64 (filename not found) [in Foundation]
UE4Editor: _pthread_body() Address = 0x88a3d99d (filename not found) [in libsystem_pthread.dylib]
UE4Editor: _pthread_body() Address = 0x88a3d91a (filename not found) [in libsystem_pthread.dylib]
UE4Editor: thread_start
CommandUtils.Run: Run: Took 906.766473s to run UE4Editor, ExitCode=0
Project.Cook: ********** COOK COMMAND COMPLETED **********
Project.CopyBuildToStagingDirectory: ********** STAGE COMMAND STARTED **********
Project.WriteStageCommandline: Creating UE4CommandLine.txt
Project.CreateStagingManifest: Creating Staging Manifest...
CookPlat IOS, this IOSPlatform
Getting IOS Deploy()
...

Exawon,

In order to better assist you, could you please upload your error output logs from the engine as a .txt file? Could you also let me know whether or not you’re able to package using only the engine and not using Jenkins?

Thanks!

Hi, .

It looks resolved after the command ‘chmod -R a+x Engine/Binaries’.

I’m wondering which files have to be excutable in order to build for iOS.
Do you have some informations about it?

Thank you.

Hi Exawon,

On iOS you will need to have execute permission on three main things (though others exist).

  1. All directories (which should have execute permission by default)
  2. App Bundle executables. For example Engine\Binaries\Mac\UnrealSync.app\MacOS\UnrealSync which is the executable in the app bundle for UnrealSync.
  3. Non App Bundle executables. For example Engine\Binaries\Mac\UnrealPak which is a standalone executable for creating pak files.

Cheers,

Hey Exawon,

We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you are still experiencing the issue you reported, please respond to this message with additional information and we will offer further assistance.

Thank you!