2017-05-05 2 views
0

Mon application est rejetée par l'App Store en raison de problèmes IPV6. Voici les informations par App StoreL'application est rejetée par l'App Store en raison de problèmes IPV6

  1. 1 Performance: App Exhaustivité ligne directrice 2.1 - Performance

Votre application est écrasé sur iPad iOS 10.3.1 connecté à un Réseau IPv6 lorsque nous:

entré les informations d'identification fournies. L'application chargée pendant une seconde, puis s'est écrasé. Lors de la relance de l'application, il semble que nous sommes restés "connecté" mais l'application se charge un moment et se bloque à nouveau.

Cela se produisait lorsque votre application a été utilisée:

  • Sur Wi-Fi

Nous avons joint les journaux crash détaillées pour aider à résoudre ce problème.

Prochaines étapes

Pour résoudre ce problème, s'il vous plaît réviser votre application et la tester sur un dispositif lorsqu'il est connecté à un réseau IPv6 (toutes les applications doivent prendre en charge IPv6) pour assurer qu'il fonctionne comme prévu.

Ressources

Pour plus d'informations sur la façon de symbolicate et lire un journal d'accident, s'il vous plaît examen Note technique TN2151 Comprendre et analyser l'application crash rapports.

Pour plus d'informations sur la prise en charge des réseaux IPv6, consultez la section Prise en charge des réseaux IPv6 DNS64/NAT64 et de la mise en réseau.

Aidez-moi à résoudre ce problème.

Répondre

1

je faisais face à ce problème dans iOS. Que je change ma méthode de connexion internet de classe de reachblility et mon application approuvée.Si vous voulez faire réseau Ipv6 dans votre système que s'il vous plaît vérifier

https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html 

Objectif c

+ (instancetype)reachabilityForInternetConnection 
{ 
    struct sockaddr_in6 zeroAddress; 
    bzero(&zeroAddress, sizeof(zeroAddress)); 
    zeroAddress.sin6_len = sizeof(zeroAddress); 
    zeroAddress.sin6_family = AF_INET6; 
    return [self reachabilityWithAddress: (const struct sockaddr *) &zeroAddress]; 
} 

Swift 3

func ipv6Reachability() -> SCNetworkReachability? 
{ 
var zeroAddress = sockaddr_in6() 
zeroAddress.sin6_len = UInt8(MemoryLayout<sockaddr_in>.size) 
    zeroAddress.sin6_family = sa_family_t(AF_INET6) 

    return withUnsafePointer(to: &zeroAddress, { 
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) { 
    SCNetworkReachabilityCreateWithAddress(nil, $0) 
} 
}) 
} 
+0

Quel est le meilleur de votre code swift3 ci-dessus ou un code donnés ci-dessous: 'var zeroAddress = sockaddr_in (sin_len: 0, sin_family: 0 , sin_port: 0, sin_addr: in_addr (s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0)) zéroAddress.sin_len = UInt8 (sizeofValue (zeroAddress)) zeroAddress.sin_family = sa_family_t (AF_INET) ' –

+1

Votre code est sur ipv4 et au-dessus de mon code pour ipv6 –

+0

Mais votre code prend en charge à la fois IPV4 et IPV6? –

0

Oui. Moi aussi, j'ai fait face à ce problème plusieurs fois. Apple prend désormais en charge uniquement les applications compatibles avec IPv6.

D'abord j'ai testé mon application selon leur description. J'ai testé sur IPv6 mais je n'ai pas eu d'erreur comme ils l'ont dit. Donc d'abord débogage complet après la connexion à IPv6. Si vous vous sentez, ça fonctionne bien alors faites-le.

J'ai découvert la version IP de mon réseau sur différents sites Web. J'ai pris des captures d'écran du réseau auquel je me suis connecté sur mobile et j'ai envoyé ces captures d'écran à Apple pour examen (en disant que c'est une preuve de connexion à IPv6).

Voici quelques sites qui vous aideront à trouver la version que vous utilisez.

Google IPv6 test

Maintenant, il est accepté

0

Le problème est je code pour vérifier si l'application connectée à internet ou pas. Ces codes prennent en charge uniquement IPV4 et non IPV6. donc je viens de mettre à jour ces codes pour soutenir IPV6. Voici le code:

Old Code:

var zeroAddress = sockaddr_in() 
zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress)) 
zeroAddress.sin_family = sa_family_t(AF_INET) 

New Code:

var zeroAddress = sockaddr_in6() 
zeroAddress.sin6_len = UInt8(MemoryLayout.size(ofValue: zeroAddress)) 
zeroAddress.sin6_family = sa_family_t(AF_INET6)