Реагирует на собственный, AppStore запрашивает значение NSLocationAlwaysUsageDescription - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть приложение с React Native. Я правильно загружаюсь в магазин приложений, но сегодня приложение отклонено со следующим сообщением:

Отсутствует ключ Info.plist - это приложение пытается получить доступ к конфиденциальной информации. данные без описания использования. Info.plist приложения должен содержать NSLocationAlwaysUsageDescription ключ со строковым значением, объясняющим пользователь, как приложение использует эти данные.

Отсутствует ключ Info.plist - это приложение пытается получить доступ к конфиденциальной информации. данные без описания использования. Info.plist приложения должен содержать NSLocationWhenInUseUsageDescription ключ со строковым значением, объясняющим пользователю, как приложение использует эти данные.

Мое приложение не использует никакой службы определения местоположения. Пакеты npm не изменились со времени последней версии, опубликованной в магазине приложений, и не были обновлены, они являются одинаковыми версиями.

Так что я не понимаю, почему Apple говорит, что я пытаюсь получить доступ к местоположению пользователя.

Это изменение в Apple Store? Как я могу проверить, где мое приложение пытается получить доступ к местоположению пользователя?

Это мои пакеты. Json

  "dependencies": {
    "axios": "^0.17.1",
    "lodash": "^4.17.4",
    "moment": "^2.18.1",
    "react": "^16.0.0",
    "react-addons-shallow-compare": "^15.5.2",
    "react-native": "0.53.0",
    "react-native-drawer": "^2.3.0",
    "react-native-elements": "^0.19.0",
    "react-native-fetch-blob": "^0.10.5",
    "react-native-fs": "^2.3.3",
    "react-native-linear-gradient": "^2.0.0",
    "react-native-onesignal": "^3.0.7",
    "react-native-orientation": "^3.0.0",
    "react-native-pdf": "^3.0.0",
    "react-native-progress": "^3.4.0",
    "react-native-render-html": "^3.8.1",
    "react-native-router-flux": "^4.0.0-beta.28",
    "react-native-vector-icons": "^4.1.1",
    "react-native-video": "^2.0.0",
    "react-native-video-controls": "^2.0.0",
    "react-redux": "^5.0.4",
    "redux": "^3.6.0",
    "redux-thunk": "^2.2.0"
  }

Спасибо.

Ответы [ 3 ]

0 голосов
/ 28 апреля 2018

Как отметил @TylerTheCompiler в комментариях, он снова работает. Я снова загрузил ту же компиляцию, и теперь приложение принято. Так что это была проблема от Apple.

0 голосов
/ 30 мая 2019

Просто удалите RCTGeolocation.xcodeproj из папки «Библиотеки» на левой панели XCode, если вы действительно уверены, что не зависите от географического местоположения. Удаление .xcodeproj приведет к отсоединению библиотек.

0 голосов
/ 26 апреля 2018

Apple сканирует ваш двоичный файл на наличие вызовов API, связанных с конфиденциальностью, как они описывают здесь .

Из приведенного выше списка вызов метода, который вызывает требование NSLocationAlwaysUsageDescription, равен CLLocationManager requestAlwaysAuthorization. Из быстрого поиска в моей кодовой базе RN 0.46 этот вызов появляется как в react-native/Libraries/Geolocation/RCTLocationObserver.m, так и в react-native-permissions, поэтому даже если вы не вызываете этот код из JS, тот факт, что он существует в двоичном коде, вызовет Apple пометить его.

Самое простое решение - просто добавить запись plist для NSLocationAlwaysUsageDescription, даже если она никогда не появится у пользователя, если вы никогда не попросите разрешения. У меня была эта проблема, загружаемая этим утром в магазин приложений, и после добавления флага мое приложение прошло проверку без проблем.

Технически, отсоединение libRCTGeolocation от вашего проекта XCode также должно работать, хотя я не проверял это, поэтому не могу гарантировать, что ваше приложение будет по-прежнему работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...