React-Native : 将应用提交到应用商店需要不必要的权限

Posted

技术标签:

【中文标题】React-Native : 将应用提交到应用商店需要不必要的权限【英文标题】:React-Native : Unnecessary permissions needed for App submission to App store 【发布时间】:2018-09-28 05:42:20 【问题描述】:

Info.plist 文件中缺少目的字符串 - NSCalendarsUsageDescription 键, NSBluetoothPeripheralUsageDescription , NSAppleMusicUsageDescription 键, NSMotionUsageDescription 键, NSSpeechRecognitionUsageDescription 键

我的 package.json

"dependencies": 
    "immutable": "^3.8.2",
    "native-base": "^2.8.0",
    "react": "16.4.1",
    "react-native": "0.56.0",
    "react-native-animatable": "^1.3.0",
    "react-native-camera": "^1.2.0",
    "react-native-circular-progress": "^1.0.1",
    "react-native-countdown-circle": "^3.0.0",
    "react-native-firebase": "^4.3.8",
    "react-native-navigation": "^1.1.484",
    "react-native-notifications": "^1.1.20",
    "react-native-push-notification": "^3.1.1",
    "react-native-qrcode-scanner": "^1.0.1",
    "react-native-svg": "^6.5.2",
    "react-native-swipeout": "^2.3.6",
    "react-navigation": "^2.12.1",
    "react-redux": "^5.0.7",
    "redux": "^4.0.0",
    "redux-logger": "^3.0.6",
    "redux-persist": "^4.10.2",
    "redux-persist-transform-immutable": "^5.0.0",
    "redux-saga": "^0.16.0",
    "reselect": "^3.0.1",
  ,
  "devDependencies": 
    "babel-jest": "23.4.2",
    "babel-preset-react-native": "^5",
    "jest": "23.5.0",
    "react-test-renderer": "16.4.1"
  ,
  "jest": 
    "preset": "react-native"
  ,

任何解决方案,因为我没有在我的应用中使用任何这些功能,而且我也不需要在我的应用中使用这些类型的访问权限。

【问题讨论】:

【参考方案1】:

也许您安装的依赖项使用了这些权限。当我尝试验证使用react-native-permissions 处理权限的应用程序时,我遇到了各种权限问题。由于该库支持所有类型的权限(无论您是否使用它),它会被标记,并且您需要将权限字符串添加到 Info.plist。

查看您的包裹,但我看不到任何常见的嫌疑人。您必须深入研究依赖关系以确保。

【讨论】:

我没有在应用程序中使用 react-native-permissions。如果我将应用程序上传到商店,会有任何问题吗?到目前为止,它已经在 Testflight 中。客户是一个高度关注隐私的家伙,这些不必要的权限给我带来了麻烦,因为这些在 androidManifest 或其他地方都看不到。 我使用 react-native-permission 来表明权限可能是依赖项的问题。如果您已经为 TestFlight 获得批准的应用程序,您可以继续。如果二进制文件存在问题,则处理步骤将失败。除非您启动操作(例如向用户的日历添加某些内容),否则这些使用说明甚至不会显示给用户。但是,最好调查这些用法是从哪里触发的。 我无法就客户或隐私因素发表评论。由您(或项目技术负责人)决定。【参考方案2】:

如果您不知道您的应用为何使用这些权限,只需检查代码即可。

也许它来自您编写的 react 教程或项目。

为了修复,只需将这些键添加到带有描述的 info.plist 文件中

如果您仍然想知道为什么您的应用需要这些权限,您可以查看此解决方案:What makes NSCalendarsUsageDescription required?

【讨论】:

我的客户非常关心隐私问题,这些不必要的权限给我带来了麻烦。代码没有任何问题,因为我已经多次检查了代码,我猜我使用的一些依赖项造成了这个问题!

以上是关于React-Native : 将应用提交到应用商店需要不必要的权限的主要内容,如果未能解决你的问题,请参考以下文章

将应用提交到苹果应用商店后如何更改“版本发布控制”

使用 xcode 4 将应用提交到应用商店

将应用提交到应用商店时出错

将 UWP 应用程序提交到 Windows 应用商店时出现错误 1300

尝试将应用提交到应用商店时出现通信错误

使用 Xcode 7 将应用程序提交到应用商店的解决方法