我一直在努力验证照片库访问的目的字符串是否真的按预期工作。它开始于应用程序被拒绝,因为它没有设置。
使用expo-image-picker,它在文档中说,将其添加到app.json中的插件部分应该设置NSPhotoLibraryUsageDescription:
[
"expo-image-picker",
{
"photosPermission": "This allows you to upload a photo to your Appname profile."
}
]
在我添加这个之前,我基本上将NSPhotoLibraryUsageDescription添加到app.json中ios部分的plist键中。我可以看到,两者做的是完全相同的事情。
在使用expo build:ios
构建ios之后,我能够验证Info.plist文件中是否存在该字符串:
<key>NSPhotoLibraryUsageDescription</key>
<string>This allows you to upload a photo to your Appname profile.</string>
使用Expo Go并没有真正的帮助,因为当请求权限时,它在警报中显示“Expo Go”。
此外,我只有Expo / React Native的工作经验,没有Mac(或xcode)的访问权限。
当苹果测试这个时,它看起来像这样(根据他们的截图):
预期的文本应为:
这允许您将照片上传到您的Appname配置文件。
如何在向App Store提交申请前验证目的字符串是否已设置(且有效)?
1条答案
按热度按时间ivqmmu1c1#
我的解决方案:
首先,我设置了我的应用程序的EAS构建。如果你不熟悉,你应该看看文档:https://docs.expo.dev/build/introduction/
基本上你这样做:
1.安装eas-cli:
npm install -g eas-cli
1.运行
eas build:configure
初始化eas.config文件。1.配置你的eas构建配置文件。我的看起来像这样:
我折叠了提交块来隐藏我的凭据。很抱歉照片而不是代码/文本。格式化程序一直把它弄得一团糟。
无论如何,使用
eas build -p ios --profile development
触发构建。注意模拟器标志设置为true。这将允许您在模拟器中将其作为独立的二进制文件运行。构建完成后,请转到expo.io并登录到您的帐户。(在builds标签下)。解压缩二进制文件并将其拖动到模拟器中。您可能会收到一条提示消息,说您需要启动开发服务器。只需按照这些简单的说明操作即可。您可以使用我将能够看到你的
NSPhotoLibraryUsageDescription
字符串更新。诚然,这可能是@ss中的一个痛苦,并且您在expo环境之外执行,但它解决了在再次发布到商店之前怀疑字符串是否已更新的问题。
祝你好运希望能帮上忙