ARKit iOS plist injection on build

Hi everyone.

Our ARapp build in UE4 got rejected by the apple appstore for the following reason -

"We noticed that your app requests the user’s consent to access their camera but does not clarify the use of this feature in the permission modal alert. "

even though we are using the standard permission modal alert that states “The camera is used for augmented reality”.

The problem arises once I am trying to change the default string for NSCameraUsageDescription by entering my on string in the additional plist data box in the settings. Apparently UE4 injects its own plist on build and overwrites whatever I input in the box to the default string again.

Scanning through the build log it clearly states -

“AppleARKit adding arkit requirement and camera permission to plist …”

I am not sure if this is intended behaviour or a bug but I would love to find out how I can change this particular string in any way. Where is this default string stored that UE4 is injecting or how can I overwrite it after the fact?

Thanks forgiving my problem a thought!

For anyone who has similar problems.

I “fixed” it now by unzipping the packaged ipa, changing the string manualy in the plist and Re-Signing the the app via terminal on macOS based on these informations.

Still I think it is a bug that UE4 keeps overwriting my custom plist data on build and I would love to see that particular issue forwarded to the developers.

Did you submit a bug report via submission form?

not yet, but will do

I found another way to change the string, but still it is a temporary solution:

edit
\Program Files\Epic Games\UE_4.21\Engine\Plugins\Runtime\AppleARKit\Source\AppleARKit\AppleARKit_IOS_UPL.xml
or wherever the engine code is and change the NSCameraUsageDescription value in there:

In my case:

<addElements tag="dict" once="true">
            <key>NSCameraUsageDescription</key>
            <string>Permit Camera Usage? It is used to capture your facial expressions</string>
</addElements>

Make sure to change the value for each engine update :slight_smile:

After that the ipa would be fine :slight_smile:

I taught that an engine rebuild will be needed, but the ipa build reads this xml file at runtime!

1 Like

Ola uma boa madrugada sou Kaká js, estou com uma plist activationInfoXML e não sei fazer ativação alguém poderia vira meu sócio, precisando pra fazer um lucro aqui, vocês que tem mais esperiencia se pode me passa o contato de vocês agradeço!

its happening in unreal 5.3.2 source build

how do I fix?