Отклонение IPv6 App Store

89

Наше обновление было дважды отклонено сегодня из-за проблем с подключением к сети ipv6. Наш сетевой код не изменился между предыдущим и текущим выпусками.

Приложение отправляет сетевые запросы https только к api.metooapp.io, который правильно настроен для ipv6 [ 0 ] и выполняется за route53 на AWS. В коде нет жестко заданных IP-адресов.

Я не могу воспроизвести эту проблему, даже после выполнения шагов по созданию сети ipv6 в [ 1 ], которая является ссылкой, которая была указана в уведомлении об отказе. Похоже, что я не единственный, у кого возникла эта проблема [ 2 ].

Шон Тилен
источник
Вы пользуетесь AFNetworking(если да, то какой версией)? Reachability? Библиотеки третьих сторон?
Брэндон
Alamofire 3.4.0 и Reachability.swift , но я использую Reachability только для дополнительных фоновых задач. Моя основная проблема в том, что я не могу воспроизвести это, даже следуя инструкциям Apple.
Шон Тилен
Добавьте свой сетевой код в вопрос
error2007s 05
@ error2007s Сетевой код - Alamofire
Шон Тилен
1
вы купили последний ключ Apple IPv6?
Anders

Ответы:

37

После небольшого стресса я могу подтвердить, что проблема заключалась в том, что наш бэкэнд был неправильно настроен для IPv6. Судя по всему, AWS не поддерживает ни IPv6, ни DNS только для IPv6 через Route53. В итоге я переместил все части серверной части, обращенные к Интернету, на время от AWS.

Я хотел оставить это, потому что думаю, что, вероятно, будут другие, которые столкнутся с аналогичными проблемами, когда люди начнут отправлять обновления после ограничения только IPv6. Лучшим инструментом, который я нашел для тестирования готовности сервера / DNS, был: http://ready.chair6.net/

Шон Тилен
источник
2
Можете ли вы сказать мне, была ли причина отказа App Store в том, что ваши серверы не поддерживают трафик IPv6? У меня сейчас 3 отказа подряд от Apple, но мой код не изменился по сравнению с предыдущими версиями. Я использую Xamarin iOS и обновил их плагин Connectivity до последней версии, потому что у них были проблемы с IPv6. Я в отчаянии! Я не могу воспроизвести сбой на своих устройствах iOS здесь (даже в сети NAT64 IPV6 через мой общий доступ к Интернету Mac).
Джон
этот отказ вызван вашим сервером, ваш сервер не поддерживает ipv6. Mangist
Пабло Руан
Привет, @Sean Thielan, я протестировал наш сервер с помощью ready.chair6.net, и он не работает с сетевым подключением IPV6, но приложение работает нормально с тем же сервером, который мы тестировали, создав сеть NAT64 (для сети IPV6) на нашем Устройство iPhone 5S с версией ОС 10.0.2. Можете ли вы рассказать о следующем. Нужно ли нам повторно отправить приложение в магазин приложений или обратиться в службу технической поддержки Apple. Или нам нужно настроить наш Сервер для поддержки сети IPV6?
Венкатеш
Привет, @Venkatesh, вы нашли решение этой проблемы, потому что я застрял с отказом Apple в том же случае?
Мохамед Фадл Аллах
привет Шон. Я тестировал свои API. Он не проходит эти три теста .. DNS (IPv6 NS) DNS (MX Record) DNS (Glue) .. Результатом для этих трех является WARN. это проблема, что яблоко отклоняет мое приложение. ?? Обязательно пройти все тесты домена .. на ready.chair6.net ?????
JAck
11

Обратите внимание, что ссылка « Поддержка сетей только с IPv6» и « IPv6» и «Обзор приложений» может быть очень полезной при определении проблемы с отклонениями Apple. В этом конкретном случае в статьях четко указано, что вы можете настроить тестовую сеть DNS64 / NAT64, но что «Эта тестовая сеть не совсем такая же, как сеть, используемая App Review», поэтому все может работать в тестовой среде и при этом иметь приложение отклонено.

Кроме того:

Сеть App Review, как и сети, развернутые поставщиками услуг, действительно поддерживает подключение IPv6 к IPv6. Таким образом, если ваш сервер поддерживает IPv6, ваше приложение будет обращаться к нему напрямую, без использования транслятора NAT64. В целом это хорошо, но может сбить вас с толку, если ваш сервер утверждает, что поддерживает IPv6, но эта поддержка IPv6 не работает. Например, если: имя DNS неверно, DNS правильный, но сервер не слушает IPv6, сервер слушает IPv6, но терпит неудачу, когда запрос приходит через IPv6

Итак, если ваш внутренний сервер поддерживает IPv6, тестовая сеть Apple будет использовать его, и в данном случае это было не так.

Я добавляю это в качестве справки и отправной точки для других пользователей, которые сталкиваются с той же проблемой.

Lucianoenrico
источник
10

Мы столкнулись с той же проблемой, и выяснилось, что когда мы настраивали запись AAAA для IPv6, поскольку у нас фактически не было поддержки IPv6 (мы также используем Route53), это все сработало. Удаление записи AAAA устранило проблему.

Я подал радар о несоответствии между документацией для тестирования и настройки App Review использует - мы только были в состоянии диагностировать , потому что наш технический директор был на WWDC и был в состоянии подключиться к своей сети, которая не является точно ситуация мы можем воспроизводить регулярно.

Назначенный ботаник
источник
Интересно. Я настроил Route53 таким же образом, с записью AAAA, связанной с ELB. Возможно, в следующей минорной версии я попробую еще раз на AWS, но без записи AAAA. Раздел результатов вашего радара точно отражает мой собственный опыт. В какой-то момент я сбросил настройки маршрутизатора, Macbook и iPhone, чтобы полностью убедиться, что это не какая-то абсурдная проблема с кешированием. Я бы продолжил расследование, но я просто счастлив, что обновление прошло, и я надеюсь никогда больше не думать об этом.
Шон Тилен
Получили ли вы какой-нибудь ответ от Apple на ваш радар?
Kaiserludi 05
1
@Kaiserludi неофициально, хотя я видел, что на форумах разработчиков, если вы посмотрите несколько сообщений от Quinn The Eskimo, он обновил их, добавив гораздо больше информации, чтобы помочь вам отладить. Это кажется особенно полезным: forum.developer.apple.com/message/147579#147579
DesignatedNerd
Большое спасибо. Эта ссылка действительно очень информативна.
Kaiserludi
6

Мы столкнулись с похожей ситуацией. Наше приложение было отклонено из-за проблем с подключением в сетях IPv6. Также наши серверы используют AWS.

Я провел тест для IPv6 DNS64 / NAT64 без каких-либо проблем с моей стороны, и мы решаем подать апелляцию на этот отказ.

Мы объяснили, что тестирование с нашей стороны прошло успешно и что мы используем инфраструктуру AWS.

Еще через два дня приложение было снова рассмотрено и принято.

MP23
источник
5

мы столкнулись с той же проблемой。 Наше приложение было отклонено сервалом по причине ipv6. Но мы прошли тестирование в сети ipv6, которая была настроена как официальный документ APPLE: https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortitionheIPv6//Trans uid / TP40010220-CH213-SW1

Эрн Чжан
источник
6
Вы нашли решение этого? Я не могу получить одобрение моего приложения в Apple, и у меня нет идей,
Джон,
5

Наше приложение отклоняется в первый раз, мы настраиваем локальную тестовую среду на основе документа Apple и обнаруживаем, что наша библиотека curl слишком старая без включения ipv6 по умолчанию. Итак, мы создали последнюю версию curl lib, и она работает. Но он снова отклонен по той же причине. Я проверяю много информации, нахожу, что у кого-то был такой же опыт, просто пожаловаться рецензенту Apple, чтобы он сказал, что ваше приложение хорошо работает в тестовой среде, и прошу его предоставить инженера, который поможет, если они настаивают на какой-то ошибке. Группа проверки Apple одобрила наше приложение на выходных, когда увидела наши жалобы.

Насколько я знаю, вам нужно проверить 2 вопроса. Вы жестко указали IP-адрес в своем приложении? Вы настраиваете запись AAAA для домена вашего сервера, чтобы показать, что он поддерживает ipv6, но ваш сервер не слушает ipv6. Если да, просто удалите эту запись AAAA в настройках своего домена с сайта поставщика домена.

ramon.liu
источник
2

Это второй раз, когда я столкнулся с этой проблемой через 6 месяцев. Раньше это было в проекте Objective-C с использованием AFNetworking, и я использовал это решение, и оно работало сразу. Теперь то же самое произошло с Alamofire. Ребята, это решение сработало у меня 2 раза, и я обнаружил, что этот вопрос сначала появляется в Google, поэтому я отправляю ответ.

Найдите в рабочей области AF_INET и измените его на AF_INET6 в любом месте, где вы нашли. Я думаю, что он должен быть внутри библиотеки AFNetworking или библиотеки Alamofire, если вы ее используете. Его в классе NetworkReachabilityManager.

Я нашел этот ответ из приведенного ниже источника.

https://stackoverflow.com/a/38196337/4030971

РЕДАКТИРОВАТЬ: - 24 июня -

Это помогало мне очень много раз, но есть и странное решение этой проблемы. В нашем недавнем проекте мы применили это решение, но Apple все равно отклонила заявку. Затем мы сделали видео, в котором было показано, что приложение работает нормально при подключении к сети NAT64, созданной на Mac, с помощью опции совместного использования Wi-Fi. Мы обратились за просмотром с видео, и они одобрили заявку. Так что, если вы закончили со всеми вариантами, попробуйте и этот.

Махеш Агравал
источник
1

Я выполнил тест IPv6 DNS64/NAT64без каких-либо проблем, как указано в документации Apple.

однако мы не можем воспроизвести проблему (сбой). Мы успешно устанавливаем приложение на наши устройства без сбоев.

  • Мы сняли видео этого общего процесса тестирования (которое включает в себя демонстрацию подключения, загрузку из testflight, сетевое подключение NAT64, операции приложения)
  • и обращение об отказе с видео файлом

Наконец , магазин приложений ОДОБРИЛ мое приложение

Фани Сай
источник
1
убедитесь, что ваше приложение не имеет жестко закодированного IP-адреса в приложении, включая плагины
Phani Sai
0

Я столкнулся с тем же отклонением приложения при использовании Facebook SDK. Если вы используете Facebook SDK для входа в систему, невероятно важно выйти из системы при завершении сеанса. В противном случае вы столкнетесь с подобными отказами приложений в будущем. Я включил приведенный ниже код, чтобы помочь тем, у кого могут возникнуть аналогичные проблемы.

let loginManager = FBSDKLoginManager()
loginManager.logOut()
Адам Купер
источник
0

Я решил проблему, отправив им видео, показывающее, что мое приложение работает на ipv6.

  1. Настройте ipv6 с вашей macOS
  2. Видеокассета, в которой вы подключены к общей сети ipv6 и подтверждаете, что ваше приложение работает в этой среде.
Стив Хэм
источник
Пробовал видео-маршрут. Они показали, что я настроил свой Mac как Wi-Fi IPV6, подключил к нему свой телефон и запустил приложение без проблем. Я только что получил от них еще один отказ: «Спасибо за ответ. Во время нашего обзора мы обнаружили, что ваше приложение по-прежнему запускается с белым экраном, даже когда оно тестируется на нескольких устройствах». Затем следует совет о том, как тестировать сети IPV6; это те же шаги, которые я показал им в своем видео. В целом ответ выглядел так, как будто он был автоматизирован. Как вести себя с реальным человеком из команды Apple Review?
ChillyPenguin
Возможно, devprograms@apple.com.
Стив Хэм
0

мое приложение было отклонено два раза в магазине приложений. Они выдают ошибку при входе в твиттер на iphone с ОС 11.4. Основная проблема, с которой мы сталкиваемся, связана с URL-адресом обратного вызова Twitter, который не установлен в учетной записи разработчика Twitter. когда я устанавливаю URL-адрес обратного вызова в учетной записи разработчика Twitter. Это решает мою проблему. Когда мы не устанавливаем URL-адрес обратного вызова в учетной записи разработчика в Twitter, тогда вход в Twitter выполняется успешно, когда на устройстве установлено приложение Twitter. но при отсутствии твиттера на устройстве выдает запрещенную ошибку 403.

Таким образом, установка URL-адреса обратного вызова решает мою проблему, и приложение принимается.

Спасибо

Рахул Фейт
источник