Is it possible to build arm64 for iOS from non source build editor?

Working on a Mac I see that the option for building arm64 for iOS, is no longer grayed out on version 4.13 of the pre-compiled install version of the editor. Enabling it and attempting a build results in an error that makes me think it is not supported.

There is a long list of files being ignored similar to this:
UATHelper: Packaging (iOS): UnrealBuildTool: ld: warning: ignoring file /Users/Shared/UnrealEngine/4.13/Engine/Binaries/IOS/UE4-Engine.a, file was built for archive which is not the architecture being linked (arm64): /Users/Shared/UnrealEngine/4.13/Engine/Binaries/IOS/UE4-Engine.a

The build ultimately fails including this message:
UATHelper: Packaging (iOS): UnrealBuildTool: ld: symbol(s) not found for architecture arm64

Is building arm64 for iOS not supported without compiling the editor from source or is something else causing this?

Hi SkyHigh,

I tested this with the Third Person Blueprint template with the Binary version of the Engine from the Launcher and was able to package for development (with support for arm64 selected) without error. Please test on your system using these parameters.

If packaging fails, please post the contents of your entire output log copied to a text file.

Thanks,

H.

Hi ,

Pardon the delay. I did what you asked and got the same result. The output log in its entirety should be attached. One thing I discovered though, is that blueprint based projects build successfully for arm64 on iOS, only C++ projects fail it would seem.

Hope this proves useful.

link text

I was able to successfully package arm64 for iOS from non source build of the editor using a blank C++ Template.

The error from your output log reads “UnrealBuildTool: ld: symbol(s) not found for architecture arm64.” Did you include the Symbols for Debug when you downloaded UE4.13? If not, add these and try packaging a blank C++ template.

Tried building with and without the symbols for debug, no dice. Compiled the editor and that still does the job, but slower. Building from the binary editor is more a convenience than a need, so I’ll make due.
It would be nice to understand why I can’t build arm64 from the binary editor though. I suspect it might have to do with some dodgy xcode settings, in spite of both 7 and 8 yielding the same results.

Just to make sure we’re comparing “apples to apples…” Did you try this with a blank C++ Template project? Again, I was able to package this set up as a test successfully (w XCode 7 installed).

I also found this article on the differences with Code signing with XCode 8 that you might find useful: Migrating Code Signing Configurations to Xcode 8

Hi SkyHigh,

Since we have not heard back from you in a while, we are marking this post “resolved” for tracking purposes. However, if you cannot build arm64 for iOS from non source build editor please respond with the requested information and we will continue to investigate.

Thanks,

H.

I can reproduce the same problem on my project.

The errors have nothing to do with Debug Symbols. These messages in the output are the key:

file was built for archive which is not the architecture being linked (arm64):
/Users/Shared/UnrealEngine/4.13/Engine/Binaries/IOS/UE4-Engine.a

I have checked that all “.a” files (static libs) pre-built for IOS are only built for 32-bit architecture. However, Shipping libs (e.g. UE4-Engine-IOS-Shipping.a) are built for both 32-bit and 64-bit architectures. This is the output of file utility for Shipping libs:

UE4-Engine-IOS-Shipping.a: Mach-O universal binary with 2 architectures

UE4-Engine-IOS-Shipping.a (for architecture armv7): current ar archive random library

UE4-Engine-IOS-Shipping.a (for architecture arm64): current ar archive random library

Hey ,

Have a look at endragorrs message. I can confirm that with a blank C++ template project, it is possible to build for arm64 with build configuration set to Shipping. I had previously only tried the Development setting, which still fails to build.

@endragorr,

We need to be able to reproduce the error in order to report it. To do this, we have to start with a project that is the same on your end and ours. To accomplish this we use a project with the fewest extraneous variables as possible (in this case, the blank C++ Template.) So, once again, are you able to reproduce the error in a blank C++ Template project? If so, please post the entire output log pasted into a text document and respond with the log as an attachement (for the blank C++ project, not your project) -Thanks!

Hi endragorr,

Since we have not heard back from you in a while, we are marking this post “resolved” for tracking purposes. However, if you are still having a problem building arm64 for iOS from the binary build of the editor, please respond with the requested information and we will continue to investigate.

Thanks,

H.

Hello, .
My game was compiling properly, and suddenly began to have problems compiling for arm64 processors. I’m using the 4.15 Unreal Engine version.

[link text][1]

Please provide the following:

  1. What platform/hardware are you developing for
  2. Are you using any plugins in your project
  3. Are you on a Mac or PC?
  4. Did it use to compile for arm64 processors? If so, can you provide more information about when it stopped?

Hello, , Here are some answers to your questions:

  1. What platform/hardware are you developing for
    I’m using a MackBook Pro, Core i7, 2.9 GHz, 16 GB 1600 MHz DDR3, Intel Graphics 4000 1536 MB, 1TB Storage

  2. Are you using any plugins in your project
    I am not using plugins in my project

  3. Are you on a Mac or PC?
    I’m using MackBook Pro

  4. Did it use to compile for arm64 processors? If so, can you provide more information about when it stopped?

I was able to understand what happened. I was compiling for testing just by enabling the armv7 processor. My iPhone has an armv8 processor. While I was compiling for testing, that was fine. When I uploaded a build for distribution, I enabled support for arm64 and armv7 processors. Because of this, my game was rejected. You can see my doubt in the link below. So, after careful consideration, I did a build for testing on my iPhone enabling support for arm64 and armv7 processors, as you can see from the image I submitted earlier (I had not done this test yet). Because I have enabled support for these two types of processors, the game crashed. So I re-done the test by keeping only support for armv7 processors enabled and I was able to run the game on my iPhone using Unreal Engine version 4.15. I came to the conclusion that there is no need to enable support for arm64 processors, both for testing and for distribution. Just keep only the support for armv7 processors enabled and everything will be fine.

The problem for me was unraveled. Thanks a lot for the help.

The issue returns when you submit a build to the App Store, via the application loader, as Apple now only allows apps that include arm64 support.

Hello, ,

I made a build now for shipping only enabling support for armv7 processors and the Application Loader did not allow me to send the package because the .ipa file generated is not supported for arm64 processors. I already migrated my game to version 4.13, 4.14 and now 4.15 of Unreal Engine and in all versions I had this problem to generate the package for shipping. After detecting this problem, I made a new build enabling the functions for support on armv7 and arm64 processors, but I believe Apple’s support when parsing the file will crash on launch because I witnessed this same problem when I compiled the game with these functions Enabled. My question is this: Is there a possibility to generate an iOS package with support for armv7 and arm64 processors without crash on launch?

Hello, ,

I did the test on my iPhone that has a processor armv8 using a blank C ++ template from Unreal Engine and kept the two functions armv7 and arm64 processors enabled and the game crash. Attached is the file for your analysis. I am using version 4.15 of Unreal Engine. I’m not finding a way to solve this problem. My game is constantly being rejected by Apple because of this problem.

link text

Hi, ,

And again my game was rejected. This is the fourth time … Below is what Apple said and also follows the Log Crash that they sent to me. It’s worth remembering that I’m compiling the game for shipping keeping both options enabled for armv7 and arm64 processors. I tried to compile the game only to support armv7 processors and the Application Loader rejected the submission. I tried to test the game on my iPhone 6S Plus keeping only the option of support for arm64 processors and there was Crash. I do not know what else to do…


"Hello,

Thank you for your resubmission. However, upon further review, we found the following:

Performance - 2.1

We were unable to review your app as it crashed on launch. We have attached detailed crash logs to help troubleshoot this issue.

Next Steps

Please revise your app and test it on a device while connected to an IPv6 network (all apps must support IPv6) to ensure it will launch without crashing.

Resources

For information on how to symbolicate and read a crash log, please see Tech Note TN2151 Understanding and Analyzing Application Crash Reports.

For additional information about supporting IPv6 Networks, please refer to Supporting IPv6 DNS64/NAT64 Networks and Supporting IPv6-only Networks.

For a networking overview, please see About Networking.

Kind Regards,
App Store Review"


link text
[link text
link text
link text
link text

More Crash Log:

link text
[link text
link text
link text
link text

More Crash Log:

link text
[link text
link text