Je vais télécharger ma première application Mac sur l'Apple Store
Et corrigé tous les bugs de validation d'icône, de catégorie ...
Mais après, j'ai passé la validation avec avertissement:
The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just an informational message.
Et mon téléchargement soit rejeté avec la raison: "Binaire invalide"
Y a-t-il quelqu'un qui a l'expérience de ce cas?
MISE À JOUR: cet avertissement n'est pas la raison du rejet, c'est peut-être le problème d'archivage de l'application. J'ai publié avec succès mon application pour la stocker.
Donc, nous pouvons ignorer cela en toute sécurité.
Réponses:
Apple interdit l'utilisation d'API privées ou non documentées dans les applications iOS. Tous les appels que vous effectuez à des méthodes qui portent le même nom que les méthodes d'API privées ou non documentées seront marqués comme une utilisation d'API privée, même si la méthode appelée est quelque chose que vous avez défini vous-même.
App Loader effectue une analyse initiale, vérifiant les noms de méthode, l'accès aux variables d'instance et même l'utilisation de @selector avec des noms de méthode privés. App Loader ne fait pas toujours un excellent travail, et plus vous avez de fichiers source, plus il est susceptible de vous avertir que le fichier d'analyse d'API qu'il a généré est "trop volumineux".
Heureusement, vous pouvez toujours soumettre votre candidature, malgré l'avertissement. Apple le vérifiera en interne, et si quelque chose est renvoyé en raison de noms qui se chevauchent, vous devrez à nouveau parcourir le processus de révision.
Erika Sadun a essayé de créer une application appelée API Kit qui effectuerait l'analyse pour vous, mais elle semble avoir abandonné son travail et supprimé toute trace de l'application de son site Web.
Chimp Studios a créé App Scanner pour faire la même chose, mais il n'a pas été mis à jour depuis 2011. Malheureusement, pour les grands projets - et cela inclut les projets avec beaucoup de pods supplémentaires de CocoaPods - il n'y a pas de bon courant (2014) moyen de résoudre ce problème autre que de nommer les éléments de manière proactive afin qu'ils ne soient pas en conflit avec les noms de méthodes et d'instances d'API privées.
Vous pouvez en savoir plus sur les conventions de dénomination du cacao d'Apple et essayer d'anticiper. Cela réduira les futurs maux de tête. Jusqu'à ce qu'Apple introduise quelque chose comme des espaces de noms, cependant, nous pouvons continuer à rencontrer ce problème de temps en temps.
L'erreur "binaire invalide" peut provenir d'un certain nombre de causes, mais elle n'a aucun rapport avec le document d'analyse d'API créé par App Loader.
Vous devez savoir que même avec l'analyse, il existe encore des moyens de contourner l'interdiction d'utiliser des API privées / non documentées. :)
la source
Après avoir rencontré ce problème pour la première fois lors de mon premier projet Swift, il semble que la réponse la plus courante à cette question soit maintenant:
Si vous utilisez Swift 2.x et XCode 7, vous obtiendrez cette erreur. N'y faites pas attention.
[MISE À JOUR: le déploiement de XCode 7.3 et iOS 9.3 semble avoir résolu ce problème!]
la source
Voici un moyen simple de les contourner ... stockez le nom du sélecteur à l'envers, comme "dlroWolleH", puis inversez la chaîne avant d'appeler la méthode.
Si Apple y parvient, vous pouvez les chiffrer.
la source