Guia de instalação

iPhone e iPad

Não há versão na App Store: compila a aplicação no seu Mac com o Xcode e instala-a no seu próprio iPhone ou iPad. No primeiro arranque, a aplicação copia os dados do jogo da sua própria cópia.

  • iOS e iPadOS 15 ou posterior
  • Um Mac com o Xcode 26
  • Basta um ID Apple gratuito
  • Cerca de 2 GB livres no dispositivo

1Do que precisa

  • Um Mac com o Xcode 26 ou posterior, da Mac App Store. Abra o Xcode uma vez para que instale os seus componentes.
  • Um ID Apple, com sessão iniciada em Xcode › Settings › Accounts. Um gratuito serve, mas as aplicações dele deixam de abrir ao fim de sete dias e têm de ser compiladas de novo; uma adesão paga ao Developer Program assina por um ano.
  • Um iPhone ou iPad com iOS ou iPadOS 15 ou posterior, e o respetivo cabo, ou emparelhado com o Mac por Wi-Fi.
  • A sua pasta do Total Annihilation, a que tem totala1.hpi: cerca de 1,1 GB com as duas expansões e a música. Onde a encontrar num Mac.

2Instalar as ferramentas

Abra o Terminal e instale as ferramentas de linha de comandos do Xcode e depois o CMake e o Ninja, por exemplo com o Homebrew. O Python 3 vem com as ferramentas de linha de comandos.

Terminal
$ xcode-select --install$ brew install cmake ninja
Ilustração

3Obter o código-fonte

A primeira compilação também obtém e compila, uma única vez, as bibliotecas de que o jogo precisa para iOS.

Terminal
$ git clone https://github.com/open-annihilation/open-annihilation.git$ cd open-annihilation$ python3 tools/bootstrap_text_fonts.py --fonts-only
Ilustração

4Criar o projeto Xcode

Encontre o seu ID de equipa: em Xcode › Settings › Accounts, escolha o seu ID Apple 1 e leia o ID da equipa 2.

Accounts
GeneralAccountsBehaviorsNavigationThemes
Apple IDs
you@example.com
TeamRole
Your Name (Personal Team)User
A1B2C3D4E5
Ilustração

Depois, na pasta open-annihilation, crie o projeto. Abre-se no Xcode:

Terminal
$ platforms/ios/scripts/xcode.sh --device --team A1B2C3D4E5 --open
Ilustração

Para um dispositivo de teste, cmake -B build-ios-xcode -DOA_IOS_BUNDLED_GAME_DIR="$HOME/Games/Total Annihilation" inclui a sua pasta do jogo na aplicação: fica cerca de 1,1 GB maior, mas pode jogar assim que é instalada.

5Compilar e instalar

  1. Ligue o iPhone ou iPad e desbloqueie-o. Da primeira vez, toque em Confiar no dispositivo.
  2. Na barra de ferramentas do Xcode, escolha o esquema oa-game 1 e o seu dispositivo 2.
  3. Se o Xcode disser que o identificador da aplicação não está disponível, mude o Bundle Identifier em Signing & Capabilities para um seu 4, como net.yourname.open-annihilation.
  4. Escolha Product › Run 3.
▶oa-game›Commander’s iPhoneReady
open-annihilation
oa-game
platforms
src
GeneralSigning & CapabilitiesInfoBuild Settings
Automatically manage signing
Your Name (Personal Team)
net.yourname.open-annihilation
Ilustração

6Permitir a aplicação no dispositivo

Da primeira vez, o dispositivo recusa abrir uma aplicação da sua própria equipa. No iOS e iPadOS 16 e posteriores, ative o Modo de programador: Definições › Privacidade e segurança › Modo de programador 1, ative-o 2 e reinicie o dispositivo quando lhe for pedido.

9:41
‹ DefiniçõesPrivacidade e segurança
Serviços de localizaçãoSim›
Rastreio›
Rede local›
Segurança
Modo de programadorNão›
9:41
‹ VoltarModo de programador
Modo de programador
Ativar o modo de programador reinicia o dispositivo.
Ilustração

Depois, confie no seu perfil de programador: Definições › Geral › VPN e gestão de dispositivos, escolha o seu ID Apple em App de programador 1 e toque em Confiar 2. Agora abra o Open Annihilation no ecrã principal.

9:41
‹ GeralVPN e gestão de dispositivos
VPNNão ligado›
App de programador
Apple Development: you@example.com›
9:41
‹ VoltarApple Development
Confiar em “Apple Development: you@example.com”
Apps deste programador: Open Annihilation
Ilustração

7Adicionar os ficheiros do jogo

Da primeira vez que a abre, o ecrã Game files oferece três formas de trazer os ficheiros do Total Annihilation para o dispositivo. Seja qual for a escolhida, os ficheiros são verificados, e a aplicação nunca fecha por falta deles.

The Game files screen on an iPad
Captura de ecrãO ecrã Game files num iPad.
  1. Coloque a pasta do Total Annihilation onde o dispositivo lhe consiga aceder: iCloud Drive, uma unidade USB, uma pasta partilhada de um computador (ligue-se a ela primeiro na aplicação Ficheiros) ou o próprio dispositivo.
  2. Toque em CHOOSE FOLDER, depois em Explorar, encontre a pasta, abra-a e toque em Abrir. A aplicação só lê nomes e tamanhos, por isso ainda não é transferido nada.
  3. Ready to copy mostra o que encontrou, com interruptores para as partes opcionais, o que deixa de fora e o espaço de que a cópia precisa. Toque em COPY.
Ready to copy
Captura de ecrãReady to copy (pronto para copiar).
  1. A cópia mostra o progresso, o tempo restante e o ficheiro em curso. Mantenha a aplicação aberta até terminar; se sair, a cópia fica em pausa e continua quando voltar. Os ficheiros que só estão no iCloud são transferidos à medida que são copiados.
Copying
Captura de ecrãCopying (a copiar).
  1. A cópia é verificada com a verificação do próprio jogo e, depois, Ready to play indica o que o jogo vai usar. Toque em PLAY.
Ready to play
Captura de ecrãReady to play (pronto para jogar).

8Jogar

Abra o Open Annihilation e rode o dispositivo para a horizontal: o jogo só funciona na horizontal. Os controlos de toque incluem tocar para mover, a gaveta de construção, a roda de ordens com um toque prolongado e o zoom com o gesto de pinça; um teclado, rato ou trackpad funciona como num computador.

✓Já está no jogo, Comandante

Quando aparecer o menu principal, o jogo encontrou os seus ficheiros. Escolha uma campanha, uma escaramuça ou um jogo em rede.

Open Annihilation main menu
Captura de ecrã

Gerir os ficheiros do jogo

Abra as definições com o botão Definições, a roda dentada no menu principal, e escolha Ficheiros do jogo: o que está instalado, o tamanho e o espaço livre, se os ficheiros entram nas cópias de segurança do dispositivo (desativado por predefinição, pois ocupariam cerca de 1,1 GB no iCloud), e MANAGE…, que adiciona uma expansão, mapas ou um mod, volta a verificar os ficheiros, ou remove-os ou substitui-os. Os jogos guardados e as definições ficam sempre.

Managing the game files on an iPhone
Captura de ecrãGerir os ficheiros do jogo num iPhone.

Jogos em rede

Da primeira vez que o jogo usa a rede, o iOS pergunta se pode encontrar e ligar-se a dispositivos na sua rede local: toque em Permitir, ou ative-o mais tarde em Definições › Privacidade e segurança › Rede local. Uma versão assinada com um ID Apple gratuito não pode procurar jogos por difusão: entre escrevendo o endereço do anfitrião no ecrã TCP/IP (o endereço de um dispositivo está em Definições › Wi-Fi, no botão de informações). Uma equipa paga pode pedir à Apple a autorização de rede multicast e compilar com --multicast-entitlement.

Resolução de problemas

“Programador não fidedigno”
Confie no seu perfil de programador, passo 6.
A aplicação deixou de abrir ao fim de uma semana
Um ID Apple gratuito assina por sete dias: compile e instale novamente, passo 5.
“This folder does not hold a Total Annihilation installation” (a pasta não tem uma instalação do Total Annihilation)
Escolha a pasta que contém totala1.hpi.
“Not enough space” (espaço insuficiente)
Liberte espaço em Definições › Geral › Armazenamento do iPhone, ou desative uma parte opcional, e depois toque em CHECK AGAIN ou CONTINUE; o que já foi copiado é mantido.
“The copy stopped” (a cópia parou)
Uma unidade, uma pasta partilhada ou a rede deixou de estar disponível: volte a ligar e toque em CONTINUE.
Não aparecem jogos na procura
Escreva o endereço do anfitrião no ecrã TCP/IP, ou compile com a autorização de rede multicast.

Atualizar e remover

Para atualizar, execute git pull na pasta open-annihilation e volte a compilar e instalar (passo 5); os ficheiros do jogo, os jogos guardados e as definições ficam no dispositivo. Para remover o jogo, mantenha premido o ícone e escolha Remover app, o que também remove os ficheiros do jogo copiados para ela.

Outras plataformas

Algo não corresponde ao descrito? Discord · Issues do GitHub