A Apple proíbe o uso de APIs privadas ou não documentadas em aplicativos iOS. Todas as chamadas que você fizer para métodos que têm o mesmo nome de métodos de API privados ou não documentados serão sinalizadas como um uso de API privado, mesmo se o método que está sendo chamado for algo que você mesmo definiu.
O App Loader faz uma varredura inicial, verificando nomes de métodos, acesso a variáveis de instância e até mesmo o uso de @selector com nomes de métodos privados. O App Loader nem sempre faz um ótimo trabalho, e quanto mais arquivos de origem você tem, mais provável é que ele avise que o arquivo de análise de API gerado por ele é "muito grande".
Felizmente, você ainda pode enviar sua inscrição, apesar do aviso. A Apple verificará internamente e, se algo for interrompido por causa da sobreposição de nomes, você terá que passar pelo processo de revisão novamente.
Erika Sadun tentou fazer um aplicativo chamado API Kit que faria a digitalização para você, mas ela parece ter abandonado o trabalho e removido qualquer vestígio do aplicativo de seu site.
A Chimp Studios criou o App Scanner para fazer a mesma coisa, mas não foi atualizado desde 2011. Infelizmente, para grandes projetos - e isso inclui projetos com muitos pods extras de CocoaPods - não há nenhum (2014) bom atual Uma maneira de resolver esse problema diferente de nomear as coisas de forma proativa de forma que não entrem em conflito com o método privado da API e os nomes das instâncias.
Você pode aprender proativamente sobre as convenções de nomenclatura de cacau da Apple e tentar se antecipar. Isso reduzirá as dores de cabeça futuras. Até que a Apple introduza algo como namespaces, no entanto, podemos continuar enfrentando esse problema de vez em quando.
O erro "binário inválido" pode ter várias causas, mas não está totalmente relacionado ao documento de análise da API criado pelo App Loader.
Você deve saber que, mesmo com a varredura, ainda há maneiras de contornar a proibição de uso de APIs privadas / não documentadas. :)