Archive zip signature pkzip invalide

Hello,

Un p'tit soucis histoire de changer un peu.

J'intègre un ficher xml dans des archives de comic contenant toutes les infos utile.
J'utilise minizip mais ça pose un problème avec unarchiver de MacOS: bomCopierFatalError:Couldn't read pkzip signature.

Pour ajouter mon fichier XML avec le maximum de sécurité je décompresse, j'écris mon XML, je compresse, je colle l'original dans la corbeille et je met la nouvelle archive à sa place.

Pour ne plus avoir ce souci de signature pkzip j'ai décidé d'utiliser la commande zip mais ça coince.
La commande est exécuté dans un dispatch_async mais quand je retourne dans l'interface et que je scroll ça crash même si la commande (ainsi que la méthode complète) est terminé

2019-05-13 07:56:03.927056+0200 Librairie[1168:114509] Unexpected outstanding background CATransaction

Au début je me suis bien dit que je pouvais faire un faux en écriture :D en modifiant la signature mais no way.
cette doc est p'tet périmé: https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html

Le code:
https://github.com/Old-Geek/Librairie/blob/master/Librairie/Views/Folder/ContentInfo/ComicInfo.m#L160

Une idée ?

Réponses

  • klogklog Membre

    Si tu exécute ta décompression dans un dispatch_async, est-ce qu'elle n'est tout simplement pas, puisqu'asynchrone, incomplète au moment du scroll ?

  • Ben si, c'est bien pour ça que je le colle en async, pour pouvoir passer à autre chose pendant que ça bosse.
    Mais c'est pas censé interférer, je n'y colle aucun retour graphique pour éviter ce genre de déconvenue.

  • LarmeLarme Membre
    mai 2019 modifié #4

    Essayes-tu de relire ce que tu as compressé à un moment donné ?
    Si tu essayes de le faire alors que tu étais en train d'écrire, cela pourrait expliquer ce crash.

  • mai 2019 modifié #5

    @Larme a dit :
    Essayes-tu de relire ce que tu as compressé à un moment donné ?
    Si tu essayes de le faire alors que tu étais en train d'écrire, cela pourrait expliquer ce crash.

    Non je n'essaye pas je n'ai pas encore activé de rafraîchissement temps que c'est pas au point. Ca me le fait aussi de temps à autre quand je fais défiler l'outlineview alors qu'il n'y a aucune raison.

    Je rebascule vers minizip mais en n'utilisant plus de wrapper. Les types font n'importe quoi...
    J'avais prit objective-Zip mais il embarque une version de minizip qui a plus de 10 ans et incapable de m'écrire un fichier de plus de 70ko. J'ai upgradé minizip pour qu'il puise écrire des fichiers plus gros mais avec le problème de signature.

    J'ai cherché d'autres wrapper mais même pour les plus récents les types use cette vieille version de minizip complètement obsolète. En fouinant j'ai trouvé un git ou les types l'ont upgradé bien comme il faut et en testant j'ai plus ce problème de signature.

    Y'a beaucoup de types qui réinvente la roue sans jamais la faire évoluer et tu perds un temps fou en cherchant à en gagner finalement...

    https://github.com/nmoinvaz/minizip <-- si jamais quelqu'un tombe sur ce post il saura ou aller.

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