Это приложение не может быть одобрено с функциональностью CallKit, активной в Китае.Пожалуйста, внесите соответствующие изменения и повторно отправьте это приложение на рассмотрение. - PullRequest
0 голосов
/ 22 мая 2018

Недавно Министерство промышленности и информационных технологий Китая (MIIT) потребовало деактивировать функцию CallKit во всех приложениях, доступных в China App Store.В ходе нашего обзора мы обнаружили, что ваше приложение в настоящее время включает в себя функцию CallKit и что Китай включен в список доступных территорий в iTunes Connect.

Теперь, вопрос в том, что дальше, какие изменения требуются в приложении

Если нет никакого способа, Как я могу удалить фарфор из Apple Store.

Пожалуйста, поделитесь своим предложением, если кто-то сталкивался с такой проблемой.

С уважением,

Ответы [ 2 ]

0 голосов
/ 11 июля 2018

Мой подход к этой проблеме был вдохновлен этим ответом на форумах разработчиков Apple .Похоже, что в настоящее время общий консенсус разработчиков заключается в том, что App Review не дает конкретных рекомендаций, и в настоящее время они не объясняют или не требуют конкретного технического решения.Я думаю, что до тех пор, пока вы сможете объяснить App Review, как отключить CallKit для пользователей в Китае, это будет приемлемо.

Я обновлял свое приложение, как я обсуждаю ниже, и оно прошло App Storeсначала попробуйте, и мы переиздали в Китае 24 июля 2018 года.

  • Когда я отправил свое обновленное приложение в App Store, я включил короткое сообщение в рецензентВ информационном разделе говорится:

    " В этой версии и далее мы не используем функции CallKit для пользователей в Китае. Мы определяем регион пользователя с помощью NSLocale. "

  • Мое приложение было одобрено через 12 часов без каких-либо вопросов или комментариев от команды обзора приложений.


Обнаружение пользователей в Китае

В своем приложении я использую NSLocale, чтобы определить, находится ли пользователь в Китае.Если это так, я не инициализирую и не использую функции CallKit в своем приложении.

- (void)viewDidLoad {
    [super viewDidLoad];

    NSLocale *userLocale = [NSLocale currentLocale];
    if ([userLocale.countryCode containsString: @"CN"] || [userLocale.countryCode containsString: @"CHN"]) {
        NSLog(@"currentLocale is China so we cannot use CallKit.");
        self.cannotUseCallKit = YES;
    } else {
        self.cannotUseCallKit = NO;
        // setup CallKit observer
        self.callObserver = [[CXCallObserver alloc] init];
        [self.callObserver setDelegate:self queue:nil];
    }
}

Чтобы проверить это, вы можете изменить регион в Настройки> Общие> Язык и регион> Регион.Когда я установил «Регион» на «Китай», но оставил язык «Английский», [NSLocale currentLocale] вернул "en_CN".

. Я использовал CXCallObserver для наблюдения за состоянием вызова, инициированного из моего приложения.Мой общий обходной путь, когда я не мог использовать CallKit для мониторинга вызова, был:

  • сохранить NSDate, когда вызов начинается
  • наблюдатель для UIApplicationDidBecomeActiveNotification с UIBackgroundTask с обработчиком истечения срока действия (мойв приложении уже включены фоновые режимы)
  • когда приложение возвращается из фона, проверьте истекшее время и, если оно прошло менее 5 с и менее 90 минут, предположите, что вызов завершен, и сохраните его (мне нужно было отследитьдлительность звонка).
  • Если вызывается backgroundTaskExpirationHandler, предположим, что вызов завершен, и сохраните время окончания.
  • Я решил подождать, пока не истечет хотя бы 5 секунд, потому что я заметил, что -applicationDidBecomeActive часто вызывается один раз илиКак только звонок начался, обычно в течение первых 1-3 секунд.
0 голосов
/ 11 июня 2018
  1. Перейдите к « Цены и доступность » в iTunes Connect.
  2. Доступность »(нажмите синюю кнопку Редактировать ).
  3. Отмените выбор Китая в списке «Отменить выбор».
  4. Нажмите « Готово ».
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...