我一直在努力验证用于访问照片库的目的字符串是否真的按预期工作。它开始于应用程序被拒绝,因为它没有设置。
使用 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 提交应用程序之前,我如何验证目的字符串是否真的设置(并且有效)?
我的解决方案:
首先,我为 EAS 构建设置了我的应用程序。如果您不熟悉,您应该查看文档:https://docs.expo.dev/build/introduction/
基本上你这样做:
npm install -g eas-cli
eas build:configure
来初始化一个 eas.config 文件。我折叠了提交块以隐藏我的凭据。对不起,照片而不是代码/文本。格式化程序一直把它搞砸了。
无论如何,使用
eas build -p ios --profile development
触发构建。请注意模拟器标志设置为 true。这将允许您在模拟器中将其作为独立的二进制文件运行。
构建完成后,前往 expo.io 并登录您的帐户。单击您的项目并下载适用于您的 ios 构建的二进制文件(在构建选项卡下)。解压缩二进制文件并将其拖到您的模拟器中。系统可能会提示您需要启动开发服务器的消息。只需按照这些简单的说明进行操作即可。您将能够看到您的
NSPhotoLibraryUsageDescription
字符串是否已更新。
无可否认,这在 @ss 中可能是一个痛苦,并且您有点在 expo 环境之外执行,但它解决了在再次发布到商店之前想知道您的字符串是否已更新的问题。
祝你好运。希望有所帮助。