UE games impossible to sell in Apple Store?

Hello

I have a working PC game, but the target audience uses globally Macs (media people…). So I need to convert to Mac. It works well until App Store connect. The game is rejected because of:

Contents/UE/Engine/Binaries/ThirdParty/Apple/MetalShaderConverter/Mac/libmetalirconverter.dylib
Symbols:
• __dyld_get_image_uuid

The problem is that is even all the default blank, empty first person, third person etc templates uses this “__dyld_get_image_uuid”.

So the problem must be inside Unreal.

Would anybody have an idea how to solve this? I have spend now two months with this issue. Almost all plug-ins disabled.

Here are the problem makes, I think this has something to do with Metal.

MY OWN GAME​​
find /Users/XXXXX/Desktop/XXXXX_Package/Mac2/XXXXXX.app/Contents/UE/Engine/Binaries/ThirdParty/Apple/MetalShaderConverter -type f -perm +111 -exec otool -Iv {} + 2>/dev/null | grep __dyld_ge

0x00000000012c62a0 374767 __dyld_get_image_uuid
0x00000000015e8468 374767 __dyld_get_image_uuid

FIRST PERSON DEFAULT UNREAL PROJECT

find /Users/XXXXX/Desktop/XXXXX_Package/Mac_Empty/MyProject2.app/Contents/UE/Engine/Binaries/ThirdParty/Apple/MetalShaderConverter -type f -perm +111 -exec otool -Iv {} + 2>/dev/null | grep __dyld_ge

0x000000000136079e 325004 __dyld_get_image_uuid
0x000000000167c4c0 325004 __dyld_get_image_uuid
0x00000000012c62a0 374767 __dyld_get_image_uuid
0x00000000015e8468 374767 __dyld_get_image_uuid

TOTALLY BLANK PROJECT
find /Users/ramilindholm/Desktop/Multicam_Simulator_Package/Mac_Empty/MyProject3-Mac-Shipping.app/Contents -type f -perm +111 -exec otool -Iv {} + 2>/dev/null | grep __dyld_ge

0x0000000106c508a4 849351 __dyld_get_image_header
0x0000000106c508aa 849352 __dyld_get_image_name
0x0000000107f0ec60 849351 __dyld_get_image_header
0x0000000107f0ec68 849352 __dyld_get_image_name
0x0000000106451d54 821360 __dyld_get_image_header
0x0000000106451d60 821361 __dyld_get_image_name
0x000000010770eb70 821360 __dyld_get_image_header
0x000000010770eb78 821361 __dyld_get_image_name
0x000000000136079e 325004 __dyld_get_image_uuid
0x000000000167c4c0 325004 __dyld_get_image_uuid
0x00000000012c62a0 374767 __dyld_get_image_uuid
0x00000000015e8468 374767 __dyld_get_image_uuid

The problem is the 0x00000000015e8468 374767 __dyld_get_image_uuid. Where could that refer to?

M1 Sonomo 14.4.1 and UE5.0-5.4.3.

Contact if you can solve this, I´ll pay you:)

Yours, Ramses

It looks like Epic added a reference to the lib causing the issue in the 5.4.x release:

https://github.com/EpicGames/UnrealEngine/commit/c1edfa3ade2c00540b9f0608e77dabac59c2a40e

Basically, they added a new module “MetalShaderCompiler” that rely on the libmetalirconverter.dylib provided by Apple, with the unauthorized function.

This seems to be something related to “Bindless Rendering” , in Experimental status.

This is on the 5.4.x branch. In earlier releases (5.3, 5.2, 5.1, 5.0) this dependency does not seems to be present. Are you sure you tested with earlier releases ?

Other than that, it is definitively possible this is a bug from Epic. I guess the only thing you may do for now is to report an issue.

2 Likes

As an experimental workaround, you could also try to download the latest version of libmetalirconverter.dylib from Apple site (Metal shader converter - Metal - Apple Developer) and see if there is still a reference to the bad function. If not, you may tentatively test to use that version (there is a very very little chance that could work if things haven’t changed too much)

2 Likes

Thank you. You are an angel:) I´ll check that and report a bug.

Yours, Ramses

If you find the solution or finally need to report a bug on the UE5.4 branch, don’t hesitate to post it here. I’m sure other devs focused on Macs might encounter a similar issue!

I am also having this problem. Is this just an issue with Unreal Engine that needs to be fixed in a future update? Has a solution been found? Are there any work arounds?

Please report a bug. The more reports Unreal gets, the faster the hopefully solve the issue:)

I have actually reported this at least twice to Unreal. Latest one five days ago.

I also reported this to Apple and they just CALLED me:) Their team have tested this now and it is definitely Unreal´s issue. Unreal uses or references the non-public or deprecated APIs.

The lates bug report is Case # 12163942 if somebody in Unreal sees this. The case number can not be tracked in https://issues.unrealengine.com/ so looks like no-one has reacted to this.

All the points to Apple dev support, and not so many points to Unreal unfortunately. I have struggled with this now for about two months and few hundred hours.

I guess all I and we can do is wait. Hope Unreal is soon Mac compatible:)

Yours, Ramses

Could you please check the link:) It´s not working at least for me.

Thank you for your interest in this:)

Yours, Ramses

You need to have your github account linked to Epic account, in order to access the link (this is the Unreal Engine repository): => how to use UE on github

This is the commit where they added the “MetalShaderCompiler”, that occurred mid february

Unfortunately downloading a new version of Metal shader converter did not help. But thank you for a hint:)

Yours, Ramses

I have reported this now 3 times in 3 weeks time for Unreal. Not one of them have been answered. So I really appreciate you taking interest in this:)

Yours, Ramses

Has this issue still not been resolved? It has been several months. Any known work arounds or do we really just need to wait for Unreal Engine to fix the issue?

No solution. This have been reported several times to Unreal. They do not answer. Apple called me about this and confirmed this is Unreal problem. What a service from Apple:)

Does anyone know if this issue been resolved in UE 5.5?

The issue has been resolved in Unreal Engine 5.5.1.

I tested it, the problem is solved in 5.5.1.