Ключ UIFileSharingEnabled в Info.plist

Я добавил ключ UIFileSharingEnabledк информации о версии моего приложения, как описано здесь, чтобы мои пользователи могли сохранять файлы в папке документов моих приложений. Отлично работает в тестировании. Пытался загрузить в Apple Store с помощью Application Loader, и я получаюERROR ITMS-90039: "Type Mismatch. The value for the Info.plist key UIFileSharingEnabled is not of the required type for that key.. Я погуглил и нашел, где у других были проблемы с этим, но ни одно из их решений не помогло. Вот способы, которыми я пытался показать этот ключ в Info.plist:

<key>UIFileSharingEnabled</key>
<string>true</string>

<key>UIFileSharingEnabled</key>
<true/>

<key>UIFileSharingEnabled</key>
<string>YES</string>

<key>UIFileSharingEnabled</key>
<YES/>

У всех одинаковый результат, загрузчик приложений отключает ERROR ITMS-90039. Этот ключ является логическим ключом, а для других булевых ключей в Info.plist они просто выглядят как верхний, который я показываю. У кого-нибудь есть образец Info.plist с этим истинным ключом, который мы тоже можем сравнить?

Я создал свое приложение в Rad Studio 10.3.2 (C++ Builder). Ключ работает с тестовыми сборками на телефоне.

1 ответ

Решение

Получилось, и вот сделка: Info.plist файл в iOSDevice64\ReleaseПапка предназначена только для вашей информации, это не то, что загружается в Apple в загрузчике приложений. ВInfo.plistкоторый загружается, находится внутри файла.ipa, который создается при создании версии Release в Rad Studio, и он подписывается, поэтому вы, очевидно, не можете его изменить.

Решением было отредактировать info.plist.TemplateiOS.xmlэто находится в папке проекта моего приложения. Ключи, которые вы вставилиProject->Options-Application->Version Info добавь к этому info.plist.TemplateiOS.xmlкогда вы строите. Итак, я отредактировал этот файл шаблона и поместил правильное представление ключа между<%ExtraInfoPListKeys%> и последнее </dict>:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<%VersionInfoPListKeys%>
<%ExtraInfoPListKeys%>
<key>UIFileSharingEnabled</key>
<true/>
</dict>
</plist>

Если просто поставить UIFileSharingEnabled ключ в Project->Options-Application->Version Info это закончится в Info.plist как показано ниже, что неверно, и загрузчик приложений выдаст эту ошибку:

 <key>UIFileSharingEnabled</key>
 <string>true</string>

Для работы с выпуском, который вы отправляете в магазин приложений, ключ должен быть таким, как показано ниже:

<key>UIFileSharingEnabled</key>
<true/>
Другие вопросы по тегам