Claramente, a Apple tem a capacidade de criar bibliotecas carregadas dinamicamente (conhecidas como estruturas) para iOS, pois elas são fornecidas com o XCode (como o UIKit). Os desenvolvedores de aplicativos têm a capacidade de criar bibliotecas estáticas ou, na melhor das hipóteses, induzir o Xcode a pensar que está carregando uma estrutura quando na verdade está carregando uma biblioteca estática, isso é conhecido como criar uma estrutura falsa, algumas das conveniências de arrastar e soltar, mas nenhum dos benefícios de carregamento dinâmico.
Qual é o raciocínio da Apple para manter estruturas dinâmicas dos desenvolvedores de aplicativos? Parece que facilitaria o uso considerável de bibliotecas externas, já que os desenvolvedores não precisariam confiar em sinalizadores de vinculador exigentes ou em cadeias de dependência de bibliotecas de código-fonte aberto.
Vejo que um motivo comum é a segurança. Por que então a Apple permite isso no OSX e não no iOS? A segurança não é um requisito também?
EDIT: isso não é mais relevante a partir do iOS 8. A Apple adicionou suporte para estruturas dinâmicas.
fonte
O motivo é a segurança, conforme mencionado nesta questão do Stack Overflow :
fonte