Unable to compile on iOS (4.8.3)

Everything was working on 4.8.2 but since upgrading it can’t find the engine .a files for iphone.

I don’t build my own engine code.

I have tried removing the engine from the launcher and a fresh install.

Log attached…link text

FWIW it builds fine for MAC and PC.

Hi theonecalledtom,

I see that you are using clang as your compiler. Currently we do not support clang as a compiler for UE4. Have you tried using Visual Studio 2013 or Xcode to see if you receive a similar error?

Hi - thank you for the response!

I get these errors when hitting compile in XCode or through the editor (using the package button for iOS). Honestly I’m always a bit confused about which module I should be building in XCode but the editor has never failed me before.

In XCode I’ve been using ProjectName - IOS > IOS Device this compiles but doesn’t link (errors above).

There was a pretty major update on the MAC I have unreal installed on - that likely fell in between 4.8.2 and compiling in 4.8.3 (I iterate on PC mostly but need to start shifting focus to iOS shortly) and perhaps caused an issue?

But hold up - can you build iOS through Visual Studio now or do you still need a MAC?

[edit1] When you try to package iOS on PC it still says this is not possible for code based projects but dreams of a better world.

[edit2]Spot checking the files it complains about they are indeed missing.

Guess I’ll take a sniff at 4.9 - Preview 2 then…

Same problem on 4.9 Preview 2.

How do I choose what iOS compiler to go with on MAC?

You’re building for the correct target. Can you try verifying your installation to see if it may generate these missing files? If this doesn’t work, can you check your permissions to be sure that you’re able to see files in the shared directory?

I have permissions to see files in the shared directory and ls shows the .a files as having rw (not x). ls does not show the files listed in the error log.

Every file erroring seems unlikely as needed on IOS, they mostly are associated with editor functionality etc.

So perhaps a build setting I changed on PC without realizing it would impact IOS in this manner…

Also verification did not bring them back. Can you (or anyone) confirm that those files exist for you?

Example: /Users/Shared/UnrealEngine/4.9/Engine/Binaries/IOS/UE4-UnrealEd.a

As I say, I’m suspicious of build settings - these seem like editor specific files being brought into a mobile build and I did play with overriding the GameEngine recently.

I can confirm that I also don’t have that file, so it is possible that the build settings are a problem. I forgot to ask previously, but is this is an issue that occurs even with a fresh project or only with a certain one that you’re using? Also, when you mention build settings and overriding the GameEngine, do you recall what settings you may of changed? Were they in the compiler itself or part of the engine’s settings?

I was following the approach in this thread. However since having these compile issues I’ve stripped that out and still seem to have problems (there were actually compile issues regarding having the editor specific subclass in a mobile project related to the unreal code generator that I haven’t had a chance to double back to because of these other issues).

Haven’t tried a fresh project yet but that was my thought too for a next approach, just takes time to setup the iOS configuration etc and meanwhile I’m theoretically still working on features…

I’ll try that next though - any suggestions on shortest path to a functional test?

What kind of iOS configuration do you mean? I would expect that, to test this, you could make a fresh C++ project, attempt to build it for iOS and see if you receive these same errors.

New project compiled, which is nice.

Here’s my theory - I modified the DefaultEngine.ini file to override the engine class used. When I did this it modified the uproject to list UnrealEd in AdditionalDependencies. When I found the added code, despite being #if WITH_EDITOR, would not compile for IOS I removed the override but my uproject did not get modified to reflect this.

[/Script/Engine.Engine]
GameEngine=/Script/MM_04.MMGameEngine
EditorEngine=/Script/UnrealEd.EditorEngine
UnrealEdEngine=/Script/MM_04.MM_UnrealEdEngine

I’m going to work without the need to override the editor classes (just wanted to trigger a save on exit and have the game behave the same way in the editor as it would on the target platform) but is there a way to override the editor game engine and still build IOS?

That was it. In the process I learnt uproject’s are human readable which is nice, and learnt a little more about the dependency system but my gut reaction is stay away from overriding the editor game class.

Given one of my upcoming tasks is to learn how to add features to the editor that may or may not be an issue. Meanwhile it looks like I’m rolling again!!