PedMoto é um aplicativo móvel que conecta usuários a serviços de entrega por motocicleta no Brasil. Acesse www.pedmoto.com.br para mais detalhes.
- Node.js: v16 ou superior
- Ionic CLI:
npm install -g @ionic/cli
- Cordova:
npm install -g cordova@latest
- Android SDK: Configurado com a variável de ambiente
ANDROID_HOME
- Java JDK: Versão 8 ou superior
- Gradle: Versão 4.10.3 ou compatível
- Keystore: Para assinar o APK (ex.:
my-release-key-ORIGINAL.keystore
)
- Clone o repositório:
git clone <url-do-repositório> cd PedMoto/Client
- Instale as dependências:
npm install
- Adicione a plataforma Android:
ionic cordova platform add android@latest
Um script de compilação (sign-apk.sh
) é fornecido para gerar e assinar o APK de release.
#!/bin/bash
# Compila o APK de release com otimizações
ionic cordova build android --release --aot --minifyjs --minifycss
# Navega para o diretório da plataforma Android
cd platforms/android
# Assina o APK
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 \
-storepass "123diego" -keypass "123diego" \
-keystore /home/diego/Downloads/my-release-key-ORIGINAL.keystore \
./app/build/outputs/apk/release/app-release.apk Principal
# Alinha o APK
zipalign -v 4 ./app/build/outputs/apk/release/app-release.apk /tmp/app-release-signed.apk
# Verifica o APK assinado
apksigner verify /tmp/app-release-signed.apk
- Certifique-se de que o arquivo de keystore está em
/home/diego/Downloads/my-release-key-ORIGINAL.keystore
. - Torne o script executável:
chmod +x sign-apk.sh
- Execute o script:
./sign-apk.sh
- O APK assinado será gerado em
/tmp/app-release-signed.apk
.
- Atualize o Cordova se houver erros:
npm install -g cordova@latest
- Reinstale a plataforma Android:
ionic cordova platform rm android && ionic cordova platform add android@latest
- Execute com saída detalhada para depuração:
ionic cordova build android --release --verbose
Para assinar o APK, configure os detalhes do keystore em platforms/android/release-signing.properties
.
No diretório platforms/android
, crie ou edite o arquivo release-signing.properties
:
key.store=/home/diego/Downloads/my-release-key-ORIGINAL.keystore
key.store.password=123diego
key.alias=Principal
key.alias.password=123diego
Certifique-se de que o platforms/android/build.gradle
referencia o arquivo de assinatura e inclui a configuração de assinatura para release:
ext.cdvReleaseSigningPropertiesFile = '/home/diego/Downloads/release-signing.properties'
if (cdvReleaseSigningPropertiesFile) {
signingConfigs {
release {
storeFile file('/home/diego/Downloads/my-release-key-ORIGINAL.keystore')
storePassword '123diego'
keyAlias 'Principal'
keyPassword '123diego'
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
As senhas padrão em release-signing.properties
e sign-apk.sh
são 123diego
. Para maior segurança, atualize-as:
- Atualize
release-signing.properties
:- Altere
key.store.password
ekey.alias.password
para uma senha segura. - Exemplo:
key.store=/home/diego/Downloads/my-release-key-ORIGINAL.keystore key.store.password=sua_senha_segura key.alias=Principal key.alias.password=sua_senha_segura
- Altere
- Atualize
sign-apk.sh
:- Substitua
123diego
pela sua senha segura no comandojarsigner
. - Exemplo:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 \ -storepass "sua_senha_segura" -keypass "sua_senha_segura" \ -keystore /home/diego/Downloads/my-release-key-ORIGINAL.keystore \ ./app/build/outputs/apk/release/app-release.apk Principal
- Substitua
- Atualize
build.gradle
:- Se usar senhas diretamente, atualize
storePassword
ekeyPassword
no blocosigningConfigs.release
para corresponder à sua senha segura. - Para maior segurança, remova senhas hardcoded e use apenas o
release-signing.properties
.
- Se usar senhas diretamente, atualize
Nota de Segurança:
Evite incluir senhas em scripts ou nobuild.gradle
. Considere usar variáveis de ambiente ou solicitar senhas durante a compilação.
Para confirmar os detalhes do keystore:
keytool -list -v -keystore /home/diego/Downloads/my-release-key-ORIGINAL.keystore -storepass sua_senha_segura
Verifique se o alias (Principal
) e as senhas correspondem à configuração.
- Dependências: O aplicativo usa Firebase (
cordova-plugin-fcm-with-dependecy-updated
) para notificações push. Certifique-se de que o arquivogoogle-services.json
está emplatforms/android
. - Ferramentas do Android SDK: Confirme que
zipalign
eapksigner
estão disponíveis em$ANDROID_HOME/build-tools/<versão>
. - AAB para Google Play: Se for publicar na Google Play, compile um AAB:
Assine o AAB com
ionic cordova build android --release --aot --minifyjs --minifycss cd platforms/android ./gradlew bundleRelease
jarsigner
oubundletool
para distribuição. - ProGuard: A compilação de release usa ProGuard para otimização. Personalize as regras em
platforms/android/app/proguard-rules.pro
, se necessário. - Configuração do Ambiente:
- Defina
ANDROID_HOME
:export ANDROID_HOME=/caminho/para/android-sdk
- Adicione ao
~/.bashrc
ou equivalente para persistência.
- Defina
Este projeto é proprietário. Contate a equipe PedMoto para detalhes de licenciamento.