React Native 如何使用Expo在iOS中测试NSPhotoLibraryUsageDescription的目的字符串?

jchrr9hc  于 2023-04-12  发布在  React
关注(0)|答案(1)|浏览(136)

我一直在努力验证照片库访问的目的字符串是否真的按预期工作。它开始于应用程序被拒绝,因为它没有设置。
使用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提交申请前验证目的字符串是否已设置(且有效)?

ivqmmu1c

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环境之外执行,但它解决了在再次发布到商店之前怀疑字符串是否已更新的问题。
祝你好运希望能帮上忙

相关问题