Skip to content

Commit ed9abea

Browse files
committed
Pushed Andriod Connection fix, retrys 3 times now
1 parent 3ffca1a commit ed9abea

File tree

8 files changed

+235
-97
lines changed

8 files changed

+235
-97
lines changed

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ app.*.map.json
4444
/android/app/profile
4545
/android/app/release
4646

47+
# Android signing keys (never commit)
48+
android/key.properties
49+
*.jks
50+
*.keystore
51+
4752
# iOS generated files
4853
/ios/Flutter/Flutter.framework
4954
/ios/Flutter/Flutter.podspec

Build.sh

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/bin/bash
2+
3+
# MeshMapper Build Script
4+
# Builds Android APK, Android AAB, and iOS IPA with the same epoch timestamp
5+
6+
set -e # Exit on any error
7+
8+
# Android signing - prompt for passwords if not set
9+
if [ -z "$SIGNING_STORE_PASSWORD" ]; then
10+
echo "Enter keystore password:"
11+
read -s SIGNING_STORE_PASSWORD
12+
export SIGNING_STORE_PASSWORD
13+
fi
14+
15+
if [ -z "$SIGNING_KEY_PASSWORD" ]; then
16+
echo "Enter key password (or press Enter if same as keystore):"
17+
read -s SIGNING_KEY_PASSWORD
18+
if [ -z "$SIGNING_KEY_PASSWORD" ]; then
19+
SIGNING_KEY_PASSWORD="$SIGNING_STORE_PASSWORD"
20+
fi
21+
export SIGNING_KEY_PASSWORD
22+
fi
23+
24+
# Generate single epoch for all builds
25+
EPOCH=$(date +%s)
26+
27+
# Output directories
28+
ANDROID_DIR="/Users/schnobbc/Documents/MeshMapper_Apps/Andriod"
29+
IOS_DIR="/Users/schnobbc/Documents/MeshMapper_Apps/IOS"
30+
31+
echo "============================================"
32+
echo "MeshMapper Build Script"
33+
echo "Epoch: $EPOCH"
34+
echo "============================================"
35+
echo ""
36+
37+
# Ensure output directories exist
38+
mkdir -p "$ANDROID_DIR"
39+
mkdir -p "$IOS_DIR"
40+
41+
# Build Android APK
42+
echo "[1/3] Building Android APK..."
43+
flutter build apk --release --dart-define=APP_VERSION=APP-$EPOCH
44+
cp build/app/outputs/flutter-apk/app-release.apk "$ANDROID_DIR/MeshMapper-$EPOCH.apk"
45+
echo "✓ Built: MeshMapper-$EPOCH.apk"
46+
echo ""
47+
48+
# Build Android AAB
49+
echo "[2/3] Building Android AAB..."
50+
flutter build appbundle --release --build-number=$EPOCH --dart-define=APP_VERSION=APP-$EPOCH
51+
cp build/app/outputs/bundle/release/app-release.aab "$ANDROID_DIR/MeshMapper-$EPOCH.aab"
52+
echo "✓ Built: MeshMapper-$EPOCH.aab"
53+
echo ""
54+
55+
# Build iOS IPA
56+
echo "[3/3] Building iOS IPA..."
57+
flutter build ipa --release --build-number=$EPOCH --dart-define=APP_VERSION=APP-$EPOCH
58+
cp build/ios/ipa/mesh_mapper.ipa "$IOS_DIR/MeshMapper-$EPOCH.ipa"
59+
echo "✓ Built: MeshMapper-$EPOCH.ipa"
60+
echo ""
61+
62+
echo "============================================"
63+
echo "Build Complete!"
64+
echo "Epoch: $EPOCH"
65+
echo ""
66+
echo "Outputs:"
67+
echo " APK: $ANDROID_DIR/MeshMapper-$EPOCH.apk"
68+
echo " AAB: $ANDROID_DIR/MeshMapper-$EPOCH.aab"
69+
echo " IPA: $IOS_DIR/MeshMapper-$EPOCH.ipa"
70+
echo "============================================"

android/app/build.gradle.kts

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,26 @@
1+
import java.util.Properties
2+
import java.io.FileInputStream
3+
14
plugins {
25
id("com.android.application")
36
id("kotlin-android")
47
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
58
id("dev.flutter.flutter-gradle-plugin")
69
}
710

11+
// Load signing config from environment variables (CI/CD) or key.properties (local)
12+
val keystorePropertiesFile = rootProject.file("key.properties")
13+
val keystoreProperties = Properties()
14+
if (keystorePropertiesFile.exists()) {
15+
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
16+
}
17+
18+
// Environment variables take precedence over key.properties
19+
val signingStoreFile = System.getenv("SIGNING_STORE_FILE") ?: keystoreProperties["storeFile"] as String?
20+
val signingStorePassword = System.getenv("SIGNING_STORE_PASSWORD") ?: keystoreProperties["storePassword"] as String?
21+
val signingKeyAlias = System.getenv("SIGNING_KEY_ALIAS") ?: keystoreProperties["keyAlias"] as String?
22+
val signingKeyPassword = System.getenv("SIGNING_KEY_PASSWORD") ?: keystoreProperties["keyPassword"] as String?
23+
824
android {
925
namespace = "net.meshmapper.app"
1026
compileSdk = flutter.compileSdkVersion
@@ -32,11 +48,18 @@ android {
3248
versionName = flutter.versionName
3349
}
3450

51+
signingConfigs {
52+
create("release") {
53+
keyAlias = signingKeyAlias
54+
keyPassword = signingKeyPassword
55+
storeFile = signingStoreFile?.let { file(it) }
56+
storePassword = signingStorePassword
57+
}
58+
}
59+
3560
buildTypes {
3661
release {
37-
// TODO: Add your own signing config for the release build.
38-
// Signing with the debug keys for now, so `flutter run --release` works.
39-
signingConfig = signingConfigs.getByName("debug")
62+
signingConfig = signingConfigs.getByName("release")
4063
}
4164
}
4265
}

android/key.properties.example

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Copy this file to key.properties and fill in your values
2+
# DO NOT commit key.properties - it contains sensitive paths
3+
#
4+
# For CI/CD, use environment variables instead:
5+
# SIGNING_STORE_FILE - path to .jks file
6+
# SIGNING_STORE_PASSWORD - keystore password
7+
# SIGNING_KEY_ALIAS - key alias name
8+
# SIGNING_KEY_PASSWORD - key password
9+
10+
keyAlias=my-key-alias
11+
storeFile=/path/to/your/keystore.jks

android/local.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ sdk.dir=/opt/homebrew/share/android-commandlinetools
22
flutter.sdk=/opt/homebrew/share/flutter
33
flutter.buildMode=release
44
flutter.versionName=1.0.0
5-
flutter.versionCode=1
5+
flutter.versionCode=1769177495

ios/Flutter/Generated.xcconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ COCOAPODS_PARALLEL_CODE_SIGN=true
55
FLUTTER_TARGET=lib/main.dart
66
FLUTTER_BUILD_DIR=build
77
FLUTTER_BUILD_NAME=1.0.0
8-
FLUTTER_BUILD_NUMBER=1769054467
8+
FLUTTER_BUILD_NUMBER=1769177495
99
EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386
1010
EXCLUDED_ARCHS[sdk=iphoneos*]=armv7
11-
DART_DEFINES=QVBQX1ZFUlNJT049QVBQLTE3NjkwNTQ0Njc=,RkxVVFRFUl9WRVJTSU9OPTMuMzguNw==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049M2I2MmVmYzJhMw==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NzhmYzMwMTJlNA==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC43
11+
DART_DEFINES=QVBQX1ZFUlNJT049QVBQLTE3NjkxNzc0OTU=,RkxVVFRFUl9WRVJTSU9OPTMuMzguNw==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049M2I2MmVmYzJhMw==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NzhmYzMwMTJlNA==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC43
1212
DART_OBFUSCATION=false
1313
TRACK_WIDGET_CREATION=false
1414
TREE_SHAKE_ICONS=true

ios/Flutter/flutter_export_environment.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ export "COCOAPODS_PARALLEL_CODE_SIGN=true"
66
export "FLUTTER_TARGET=lib/main.dart"
77
export "FLUTTER_BUILD_DIR=build"
88
export "FLUTTER_BUILD_NAME=1.0.0"
9-
export "FLUTTER_BUILD_NUMBER=1769054467"
10-
export "DART_DEFINES=QVBQX1ZFUlNJT049QVBQLTE3NjkwNTQ0Njc=,RkxVVFRFUl9WRVJTSU9OPTMuMzguNw==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049M2I2MmVmYzJhMw==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NzhmYzMwMTJlNA==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC43"
9+
export "FLUTTER_BUILD_NUMBER=1769177495"
10+
export "DART_DEFINES=QVBQX1ZFUlNJT049QVBQLTE3NjkxNzc0OTU=,RkxVVFRFUl9WRVJTSU9OPTMuMzguNw==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049M2I2MmVmYzJhMw==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NzhmYzMwMTJlNA==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC43"
1111
export "DART_OBFUSCATION=false"
1212
export "TRACK_WIDGET_CREATION=false"
1313
export "TREE_SHAKE_ICONS=true"

0 commit comments

Comments
 (0)