2016-07-05 4 views
0

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

Приложение требует демонстрационную учетную запись с IP-адресом, портом, номером учетной записи, номером клиента и ключом учетной записи. Я создал несколько учетных записей для apple с этой информацией, но я просто продолжаю отклоняться.

Сначала это было связано с UIBackgroundModes для местоположения, которое мне нужно было изменить для ios 9 и добавить отказ.

Я дал разработчику яблока сделать обзор всей информации, чтобы получить доступ к приложению. Они снова отклонили приложение, отметив: Обратите внимание, что приложения просматриваются в сети IPv6. Убедитесь, что ваше приложение поддерживает сети IPv6, так как требуется совместимость с IPv6.

В настоящее время я использую reachability 2.2 для контроля состояния устройства. Это отлично работает для всех тестов в сети IPv4.

Хотя есть новая версия reachability 3.0, в которой говорится, что она полностью поддерживает IPv6. Я не уверен, что достижимость обновлена, поскольку они все еще используют AF_INET, а не AF_INET6, описанные в документации. Apple также удалила доступностьForLocalWiFi, но мое приложение включает в себя и контролирует IN_LINKLOCALNETNUM.

Если возможно, как я могу настроить сеть IPv6 на моем iMac? Приложение использует IP-адрес (например, 199.56.42.21) для инициализации соединения с сервером. У меня еще нет сети IPv6, поэтому я попытался настроить соединение IPv6 с помощью iMac с set up a local IPv6 Wi-Fi network using your Mac. Проблема в том, что мой iMac работает за прокси (используя ethernet), а внешняя сеть находится на Wi-Fi и в руководстве по настройке написано: не через wifi.

+0

Это не вопрос программирования. Это сетевая конфигурация. –

+0

в основном вы должны быть уверены, что обновили все NSUERConnection до 'NSURLSession' в своем проекте, и это почти первый шаг к радости. – holex

ответ

1

Я использую достижимость 3.x и поддерживает IPV6.

Я проверил его лично по сети IPV6. Наше приложение также прошло через обзор App Store просто отлично.

Если вы используете какую-либо другие библиотеки сети, пожалуйста, используйте ссылку ниже, чтобы проверить поддержку IPv6 http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/

1

Просто зарегистрировал свой сайт с любым CDN как cloudFlare и ваше приложение не будет утвержден следующий раз, когда нет необходимости перекладывать все сайта на любой другой сервер. Это самый простой способ получить одобрение из магазина приложений.

0

Протокол Интернета 6 (IPv6) - это новейшая версия протокола IP (IP), который обеспечивает систему идентификации и определения местоположения компьютеров в сетях и маршрутизирует трафик через Интернет.

Количество пользователей, устройств и приложений, подключенных к Интернету, растет на таком быстром клипе, что пул доступных адресов для исходной версии интернет-протокола, известный как IPv4, быстро истощается. IPv4 использует 32-разрядные адреса и может поддерживать 4,3 миллиарда устройств, подключенных непосредственно к Интернету. Протокол замены, называемый IPv6, использует 128-битные адреса и обеспечивает примерно триста сорок триллионов.

В настоящее время Apple отклоняет приложения, поскольку приложения должны поддерживать сеть IPv6. В нашей среде мы также столкнулись с такими же ситуациями для приложений, и мы нашли одно из решений этой проблемы.Большинство приложений не требуют каких-либо изменений, поскольку IPv6 уже поддерживается API NSURLSession и CFNetwork. Если ваше приложение использует API-интерфейсы, специфичные для IPv4, или жестко закодированные IP-адреса, вам нужно будет внести некоторые изменения.

Apple также рекомендует не использовать IP-адрес Литералы на длительный срок и убедитесь, что вы не передаете литературные символы IPv4 в точечной нотации для API, таких как getaddrinfo и SCNetworkReachabilityCreateWithName. Вместо этого мы можем использовать высокоуровневые сетевые фреймворки и агитационные версии API-интерфейсов, такие как getaddrinfo и getnameinfo, и передавать им имена хостов или полные доменные имена (FQDN). Если вы используете библиотеку AFNetworking, обязательно обновите ее до версии выше 3.x, поскольку, похоже, они немного обновили некоторые вещи. Мы должны сделать некоторые изменения в библиотеке AFNetworking в классе AFNetworkReachabilityManager

+ (instancetype)sharedManager { 
static AFNetworkReachabilityManager *_sharedManager = nil; 
static dispatch_once_t onceToken; 
dispatch_once(&onceToken, ^{ 
struct sockaddr_in address; 
bzero(&address, sizeof(address)); 
address.sin_len = sizeof(address); 
address.sin_family = AF_INET6; //Change AF_INET TO AF_INET6 
_sharedManager = [self managerForAddress:&address]; 
}); 
return _sharedManager; 
} 

Нам необходимо внести некоторые изменения в описанном выше модуле для нашего приложения и добавить в библиотеку. Как только мы это сделаем, мы можем протестировать приложение для IPv6, включив опцию совместного использования Интернета в MAC.

тест для IPv6 DNS64/NAT64 СОВМЕСТИМОСТИ Во-первых, мы должны сделать, конечно Mac подключен к Интернету через Wi-Fi. Перейдите к настройкам системы и выберите параметр совместного доступа и убедитесь, что вам нужно удерживать клавишу выбора до выбора опции совместного доступа. Выберите «Общий доступ к Интернету» и установите флажок «Создать сеть NAT64». Теперь нам нужно выбрать сетевой интерфейс, который обеспечивает ваше интернет-соединение, такое как Ethernet, Wi-Fi, Bluetooth PAN.

Здесь я выбираю Wi-Fi для совместного доступа к Интернету и настройки параметров сети Wi-Fi. После того как вы настроили Wi-Fi, включите опцию совместного доступа к Интернету.

Как только мы выберем интернет-доступ, он попросит приглашение начать общий доступ к Интернету для вашего устройства.

Теперь устройство IOS подключилось в общей сети, и мы можем проверить, работает ли приложение в этой сети.

+0

http://stackoverflow.com/q/43028924/285594 - Я сделал это, но все же отказался? – YumYumYum