xtool - ferramenta para compilar e distribuir apps iOS sem Xcode
(github.com/xtool-org)- Ferramenta multiplataforma que substitui o Xcode, permitindo compilar projetos baseados em SwiftPM em Linux, Windows (WSL) e macOS e distribuí-los para dispositivos como
.ipa - Simplifica e automatiza tarefas que normalmente exigem o Xcode, sendo útil em ambientes de CI/CD (resultado de 8 anos de trabalho para automatizar a distribuição de iOS)
- Oferece recursos de assinatura e instalação de apps iOS, além de integração com Apple Developer Services
- Com a biblioteca Swift
XKit, é possível interagir diretamente com Apple Developer Services ou com dispositivos iOS a partir do app do usuário
- Com a biblioteca Swift
- Limitações fora do macOS e planos futuros
- Interface Builder: a implementação é muito complexa e o SwiftUI já substitui a maior parte
- Asset Catalogs: exigem engenharia reversa, mas valem a pena. Por enquanto, é possível contornar adicionando arquivos de imagem como arquivos brutos
- Macros proprietárias
- Macros padrão como
@Observablefuncionam - Macros proprietárias da Apple, como SwiftData, precisam ser reprojetadas após engenharia reversa
- Se a Apple distribuí-las no formato de macros WebAssembly, elas poderão ser usadas em todas as plataformas (veja a proposta no fórum Swift)
- Macros padrão como
- Extensões de app
- No momento, só é possível compilar alvos do tipo "Application"
- Isso pode ser resolvido com suporte estendido na especificação
xtool.yml
- Depuração com LLDB
- Antes do iOS 17 era simples, mas a Apple mudou a forma de chamar o
debugserver - É possível se conectar usando ferramentas como pymobiledevice3
- A integração do novo protocolo RemoteXPC é uma tarefa futura
- Antes do iOS 17 era simples, mas a Apple mudou a forma de chamar o
- Distribuição via App Store Connect
- Atualmente, há suporte apenas para execução no próprio dispositivo
- O
iTMSTransporteré multiplataforma, e a infraestrutura de integração com a API do ASC já está pronta, então há possibilidade de implementação
1 comentários
Isso parece ter sido criado separadamente, sem relação com o anúncio da Apple sobre tornar o Swift Build open source.