Como embutir bibliotecas e frameworks em uma aplicação Cocoa

Palavras-chave: Mac, embed framework, dylib, Cocoa, deployment, XCode

No OS X, bundles de aplicativos (as pastas .app) podem conter as bibliotecas dinâmicas e Frameworks que o programa usa. Assim sua aplicação passa a ser auto-contida: o usuário não precisa instalar bibliotecas extra que você usou, nem é necessário um instalador que copie essas bibliotecas no sistema do usuário.

Para isso, faça o seguinte:

  1. Compile o framework ou biblioteca usada com o atributo de diretório de instalação (Installation Directory) tendo o valor “@executable_path/../Frameworks”. Para configurar isso no XCode:
    1. Abra o projeto da biblioteca ou framework
    2. Vá em Project -> Edit Active Target
    3. No tab Build, selecione Configuration:All Configurations e Collection:Deployment
    4. Preencha o campo “Installation Directory” com @executable_path/../Frameworks
    5. Recompile

    Também é possível mudar este atributo em uma biblioteca já compilada, mas isto será tratado em um outro post.

  2. Copie suas dependências no diretório Contents/Frameworks do seu .app
    O XCode pode fazer isto automaticamente:

    1. Selecione o Target que corresponde à sua aplicação na lista Groups & Files e no combo Active Target
    2. Project -> New Build Phase -> New Copy Files Build Phase
    3. Em Destination: selecione Frameworks e deixe o resto como está
    4. Selecione o grupo “Copy Files” na lista Groups & Files e largue as bibliotecas e frameworks a incluir

Após estes passos, sua aplicação deverá conter suas bibliotecas em Aplicacao.app/Contents/Frameworks.

This entry was posted in Mac. Bookmark the permalink.

2 Responses to Como embutir bibliotecas e frameworks em uma aplicação Cocoa

  1. Cês tão chiques com esse negócio de Mac. :-)

  2. Boa dica, principalmente sendo em português… Assino a lista Cocoa-Dev e é uma questão bem freqüente por lá. Parabéns pela iniciativa de postar dicas de Objective-C. Eu já publiquei dois artigos na revista Mac+ (no número 6 e no 8), um falando de localização de aplicativos e o outro dando dicas sobre como usar o WebKit. Se precisar de ajuda é so falar.

    Julio Cesar Santos

Comments are closed.