all apps must support IPv6

rollanorollano Membre
janvier 2017 modifié dans API UIKit #1
Bonjour tout le monde,


Merveilleuse année a tous


Je cherche à  mettre une première version de mon appli sur AppStore. Seulement, il a été rejeter pour une raison de IPv6. Et cela après 10 jours d'attente


Franchement, je ne sais pas du tout ce que c'était avant aujourd'hui.


J'ai déjà  essayé de faire des tests en modifiant mes paramètres de préférence Wi-fi, mais l'option de création IPv6 n'est pas disponible.


Savez-vous ce qu'il faut faire concrètement pour que l'appli soit accepté ?



erreur Apple :


We were unable to review your app as it crashed on launch. We have attached detailed crash logs to help troubleshoot this issue.


Please revise your app and test it on a device while connected to an IPv6 network (all apps must support IPv6) to ensure it will launch without crashing.

Réponses

  • muqaddarmuqaddar Administrateur

    Est-ce que tu ne ferais pas des appels à  des serveurs IPv4 dans ton code ou par une bibliothèque ?


    Genre http://100.101.102.103 ?


  • Bonjour Muqaddar,


     


    Non justement.


     


    les seuls échangent que j'ai se font avec firebase. et pour cela je n'utilise pas d'IP.


     


    Maintenant en lisant la page d'explication d'Apple,  j'ai vu que peut-être le fait de vérifier la connexion internet de mon utilisateur peut être la cause .


     



     


     



    • Network preflighting. Many apps attempt to proactively check for an Internet connection or an active Wi-Fi connection by passing IP address literals to network reachability APIs. See Connect Without Preflight.



     


    dans mon cas, j'utilise pas d'IP, enfin je crois, mais en tout cas je vérifie bien que mon utilisateur à  une connexion internet sans pour autant l'empêcher dans l'utilisation de l'application


     


    Source code utiliser 


     


    Tuto

  • zoczoc Membre
    janvier 2017 modifié #4

    Source code utiliser 


        var currentReachabilityStatus: ReachabilityStatus {

    var zeroAddress = sockaddr_in()
    zeroAddress.sin_len = UInt8(MemoryLayout<sockaddr_in>.size)
    zeroAddress.sin_family = sa_family_t(AF_INET)

    guard let defaultRouteReachability = withUnsafePointer(to: &zeroAddress, {
    $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
    SCNetworkReachabilityCreateWithAddress(nil, $0)
    }
    AF_INET = IPv4

    Ce code n'est donc pas compatible avec un réseau IPv6 uniquement (En gros il test la possibilité de joindre une machine hypothétique qui aurait l'adresse 0.0.0.0).
  • zoczoc Membre
    janvier 2017 modifié #5
    Mauvaise manip...


  • Mauvaise manip...




    Magnifique. Je te remercie pour ta réponse :)


     


    Sais tu comment ou que dois-je faire concrètement pour remédier a cela ? à  part supprimer le test... si celà  est possible




  • var currentReachabilityStatus: ReachabilityStatus {

    var zeroAddress = sockaddr_in()
    zeroAddress.sin_len = UInt8(MemoryLayout<sockaddr_in>.size)
    zeroAddress.sin_family = sa_family_t(AF_INET)

    guard let defaultRouteReachability = withUnsafePointer(to: &zeroAddress, {
    $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
    SCNetworkReachabilityCreateWithAddress(nil, $0)
    }

    AF_INET = IPv4


    Ce code n'est donc pas compatible avec un réseau IPv6 uniquement (En gros il test la possibilité de joindre une machine hypothétique qui aurait l'adresse 0.0.0.0).

     




     


    Quelques explication supplementaire Ici. Pour comprendre d'avantage les dires de ZOC


     


    http://stackoverflow.com/questions/39631897/how-we-supourt-ipv6-for-reachability

  • Peut etre changer AF_INET à  to AF_INET6


     


    3909b23e-9aa9-11e6-8900-4facda81299b.png


  • Bonjour tout le monde


     


    C'est Vraiment la M****** "ChocoBonnn"  ::)


     


    J'ai corrigé le protocole IPv4 to IPv6, enfin, je crois, puisque je n'ai pas pus tester (L'option creat IPv6... Ce n'est pas disponible sur mon mac)


     


    J'ai soumis pour validation .... Rebelote et sans surprise

    Par contre, je ne comprends plus rien. Mon application crach sur tout autre support que mon iPhone 5 looool et le simulateur iPhone 5


     


    J'ai fait un test sur : 


     


    Simulateur :


     


    - iPhone 7 / plus  = Crach


     


    iPhone 6 / plus = Crach


     


    Divise physique :


    - mon iPhone 5 = Fonctionnel


     


    - Un autre iPhone 5 = Crach


     


     


    Là  c'est moi qui "Crack"  ;D  ;D


  • Je crois avoir trouvé. Du moins j'ai une idée.

     

    Je teste ce soir et fais un retour. surtout sur le premier problème.

     

    Peut-être cela aidera d'autres

  • J'ai trouver..


     


    Merci pour vos éléments d'aide


     


    En résumer :


     


    J'ai modifié mon code suivant l'image (IPV4 to IPV6)


     


    et déplacer une requête qui exigeait qu'un utilisateur soit connecté avant d'avoir accès à  la home page. Elle était exécuté avant la verification et la redirection de l'utilisateur vers la Login page


Connectez-vous ou Inscrivez-vous pour répondre.