我将密钥
UIFileSharingEnabled
添加到我的应用程序的版本信息 ,如此处所述,以便我的用户可以将文件保存到我的应用程序文档文件夹中。在测试中效果很好。尝试使用应用程序加载器上传到苹果商店,我得到了 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 ,其中这个键为 true,我们也可以比较吗?
我已经在 Rad Studio 10.3.2 (C++ Builder) 中构建了我的应用程序。它们主要适用于手机上的测试构建。
让它工作起来,事情是这样的:
Info.plist
文件夹中的iOSDevice64\Release
文件仅供您参考,它不是在应用程序加载器中上传到苹果的内容。上传的 Info.plist
位于 .ipa 文件 中,该文件是在 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/>
仅使用此:
<key>UIFileSharingEnabled</key>
<true/>