Inicialização do Repositório de Código
Após a configuração inicial do ambiente e das ferramentas, a prática recomendada é isolar o código da aplicação do repositório principal do motor (upstream). Essa abordagem garante que o projeto upstream não seja corrompido por código de aplicação e facilita o desenvolvimento de plugins, a criação de exemplos e futuras contribuições open source.
Criação do Repositório
Ao inicializar um novo repositório Git para o projeto, duas configurações iniciais são fundamentais:
- Arquivo .gitignore: Selecionar o template para Dart é essencial para evitar o versionamento de artefatos de compilação, diretórios de cache e configurações locais.
- Licença: O Apache License 2.0 é altamente recomendado por ser flexível, incluir cláusulas explícitas de patentes e restringir o uso não autorizado de marcas registradas.
Clonagem via SSH
Para clonar o repositório de forma segura, utilize o protocolo SSH, garantindo que a chave privada esteja carregada no agente SSH:
ssh-add ~/.ssh/minha_chave_openharmony
git clone git@gitcode.com:desenvolvedor/projeto_flutter_oh.git
Geração do Projeto Flutter
Inicialização da Estrutura
Com o repositório clonado, o próximo passo é gerar a estrutura base do Flutter:
flutter create aplicacao_oh_demo
Este comando automatiza a criação da estrutura de diretórios, resolve as dependências do Dart e gera o arquivo de entrada padrão. A conclusão bem-sucedida desta etapa confirma que o toolchain do Flutter está operacional.
Compilação e Resolução de Problemas
Ausência do Java Runtime
Durante a primeira tentativa de compilação para o OpenHarmony, o sistema de build (hvigor) pode falhar com um erro crítico:
> hvigor ERROR: Falha na tarefa :entry:default@PackageHap.
> hvigor ERROR: Execução das ferramentas falhou.
Não foi possível localizar um Java Runtime.
Por favor, verifique a instalação do JDK.
* Tente:
> Execute com a opção --stacktrace para obter o stack trace.
O ecossistema de ferramentas do OpenHarmony depende estritamente do Java. Diferente de outras plataformas, essa dependência nem sempre é sinalizada claramente pelo flutter doctor. A instalação e configuração correta do JDK no sistema são obrigatórias.
Configuração de Assinatura do HAP
Após resolver o problema do Java, um segundo obstáculo comum aparece: a ausência de assinatura de depuração. O OpenHarmony exige que todos os pacotes HAP sejam assinados, mesmo em modo de debug. O Fluter CLI não executa essa etapa automaticamente.
Para resolver, é necessário abrir o projeto no DevEco Studio, navegar até File -> Project Structure -> Signing Configs e habilitar a geração automática de assinatura.
Execução em Dispositivo Físico
Com o ambiente Java configurado e a assinatura de depuração gerada, o deploy em um dispositivo físico pode ser executado diretamente pela CLI:
flutter run --debug -d ID_DISPOSITIVO_OH_987654
Launching lib/main.dart on ID_DISPOSITIVO_OH_987654 in debug mode...
Iniciando compilação do hap...
Executando tarefa Hvigor assembleHap... 12.0s
✓ Built build/ohos/hap/entry-default-signed.hap.
Instalando hap. bundleName: com.example.aplicacao_oh_demo
A execução bem-sucedida deste comando valida a integração completa entre o Fluter e o OpenHarmony, confirmando que a cadeia de compilação, assinatura e instalação do pacote HAP no dispositivo físico está totalmente funcional.