ios - 如何使用Expo测试iOS中NSPhotoLibraryUsageDescription的目的字符串?

标签 ios react-native expo appstore-approval

我一直在努力验证照片库访问的目的字符串是否确实按预期工作。它始于应用程序因未设置而被拒绝。

使用 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)。

当苹果对此进行测试时,它看起来像这样(根据他们的屏幕截图):
enter image description here

虽然预期的文本应该是:
这样您就可以将照片上传到您的 Appname 个人资料中。

在向 App store 提交应用程序之前,如何验证目的字符串是否确实设置(并且有效)?

最佳答案

我的解决方案:

首先,我为 EAS build设置了我的应用程序。如果您不熟悉,您应该查看文档:https://docs.expo.dev/build/introduction/

基本上你这样做:

  1. 安装eas-cli:npm install -g eas-cli
  2. 运行 eas build:configure 以初始化 eas.config 文件。
  3. 配置您的 eas 构建配置文件。我的看起来像这样:

enter image description here

我折叠了提交 block 以隐藏我的凭据。抱歉用的是照片而不是代码/文本。格式化程序一直把它弄乱。

无论如何,使用eas build -p ios --profiledevelopment触发构建。请注意模拟器标志设置为 true。这将允许您在模拟器中将其作为独立的二进制文件运行。

构建完成后,请访问 expo.io 并登录您的帐户。单击您的项目并下载 ios 构建的二进制文件(在“构建”选项卡下)。解压缩二进制文件并将其拖到模拟器中。系统可能会提示您一条消息,指出您需要启动开发服务器。只需按照这些简单的说明操作即可。您将能够查看您的 NSPhotoLibraryUsageDescription 字符串是否已更新。

诚然,这对于 @ss 来说可能是一个痛苦,而且您是在 expo 环境之外执行的,但它解决了在再次发布到商店之前想知道您的字符串是否已更新的问题。

祝你好运。希望有帮助。

关于ios - 如何使用Expo测试iOS中NSPhotoLibraryUsageDescription的目的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70379858/

相关文章:

javascript - 我们是否需要使用 Expo 项目运行 pod install

ios - 从完成事件调用快速动画?

ios - Swift 绘图应用程序 - 根据 slider 更改线宽值

react-native - 如何使用react-native-elements 中的主题提供者标签包装appContainer?

reactjs - 为什么我收到错误 "Field: slug - ' slug' should match pattern "^[a-zA-Z0-9_\-]+$"。”?

javascript - 如何在 React-native WebView 中捕获 form.submit 的响应

ios - 移至可见第二个选项卡的分段 View

ios - FBSDKLoginManager.loginWithReadPermissions 不在 iOS 上调用处理程序

react-native - 是否可以在排毒端到端测试期间模拟响应

ios - react native : What is the difference between running app with Xcode vs `react-native run-ios` ?