bae705aa97
- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
173 lines
4.6 KiB
Bash
Executable File
173 lines
4.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# quiXzoom Build Verification Script
|
|
# Verifies that all required files exist for TestFlight build
|
|
|
|
set -e
|
|
|
|
echo "🔍 quiXzoom Build Verification"
|
|
echo "================================"
|
|
echo ""
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
ERRORS=0
|
|
WARNINGS=0
|
|
|
|
check_file() {
|
|
if [ -f "$1" ]; then
|
|
echo -e "${GREEN}✅${NC} $1"
|
|
return 0
|
|
else
|
|
echo -e "${RED}❌${NC} $1 (MISSING)"
|
|
ERRORS=$((ERRORS + 1))
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
check_dir() {
|
|
if [ -d "$1" ]; then
|
|
echo -e "${GREEN}✅${NC} $1/"
|
|
return 0
|
|
else
|
|
echo -e "${RED}❌${NC} $1/ (MISSING)"
|
|
ERRORS=$((ERRORS + 1))
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
echo "📦 Core Files"
|
|
echo "-------------"
|
|
check_file "package.json"
|
|
check_file "app.json"
|
|
check_file "index.js"
|
|
check_file "App.js"
|
|
echo ""
|
|
|
|
echo "📱 iOS Project"
|
|
echo "--------------"
|
|
check_dir "ios"
|
|
check_file "ios/Podfile"
|
|
check_file "ios/quixzoom.xcodeproj/project.pbxproj"
|
|
check_file "ios/quixzoom/AppDelegate.h"
|
|
check_file "ios/quixzoom/AppDelegate.mm"
|
|
check_file "ios/quixzoom/main.m"
|
|
check_file "ios/quixzoom/Info.plist"
|
|
check_file "ios/quixzoom/LaunchScreen.storyboard"
|
|
check_file "ios/quixzoom/quixzoom.entitlements"
|
|
check_file "ios/quixzoom/Images.xcassets/Contents.json"
|
|
check_file "ios/quixzoom/Images.xcassets/AppIcon.appiconset/Contents.json"
|
|
check_file "ios/ExportOptions.plist"
|
|
echo ""
|
|
|
|
echo "🤖 Android Project"
|
|
echo "------------------"
|
|
check_dir "android"
|
|
check_file "android/build.gradle"
|
|
check_file "android/app/build.gradle"
|
|
check_file "android/app/src/main/AndroidManifest.xml"
|
|
echo ""
|
|
|
|
echo "📂 Source Files"
|
|
echo "---------------"
|
|
check_dir "src"
|
|
check_dir "src/api"
|
|
check_dir "src/components"
|
|
check_dir "src/hooks"
|
|
check_dir "src/navigation"
|
|
check_dir "src/screens"
|
|
check_dir "src/store"
|
|
check_dir "src/utils"
|
|
|
|
check_file "src/api/client.js"
|
|
check_file "src/components/CameraView.js"
|
|
check_file "src/components/EvidencePanel.js"
|
|
check_file "src/components/MissionCard.js"
|
|
check_file "src/components/StatsView.js"
|
|
check_file "src/hooks/useCamera.js"
|
|
check_file "src/hooks/useLocation.js"
|
|
check_file "src/hooks/useMissions.js"
|
|
check_file "src/navigation/AppNavigator.js"
|
|
check_file "src/screens/HomeScreen.js"
|
|
check_file "src/screens/StatsScreen.js"
|
|
check_file "src/screens/ProfileScreen.js"
|
|
check_file "src/store/store.js"
|
|
check_file "src/utils/permissions.js"
|
|
check_file "src/utils/offlineManager.js"
|
|
echo ""
|
|
|
|
echo "📋 Configuration Validation"
|
|
echo "---------------------------"
|
|
|
|
# Check bundle identifier
|
|
if grep -q "com.quixzoom.app" ios/quixzoom/Info.plist; then
|
|
echo -e "${GREEN}✅${NC} Bundle identifier: com.quixzoom.app"
|
|
else
|
|
echo -e "${YELLOW}⚠️${NC} Bundle identifier not found"
|
|
WARNINGS=$((WARNINGS + 1))
|
|
fi
|
|
|
|
# Check version
|
|
VERSION=$(grep "CFBundleShortVersionString" ios/quixzoom/Info.plist | head -1 | sed 's/.*<string>\(.*\)<\/string>.*/\1/')
|
|
echo -e "${GREEN}✅${NC} App version: $VERSION"
|
|
|
|
# Check minimum iOS version
|
|
MIN_IOS=$(grep "IPHONEOS_DEPLOYMENT_TARGET" ios/quixzoom.xcodeproj/project.pbxproj | head -1 | sed 's/.*= \(.*\);.*/\1/' | tr -d ' ')
|
|
echo -e "${GREEN}✅${NC} Minimum iOS version: $MIN_IOS"
|
|
|
|
# Check required device capabilities
|
|
if grep -q "gps" ios/quixzoom/Info.plist; then
|
|
echo -e "${GREEN}✅${NC} GPS capability declared"
|
|
else
|
|
echo -e "${RED}❌${NC} GPS capability missing"
|
|
ERRORS=$((ERRORS + 1))
|
|
fi
|
|
|
|
if grep -q "camera" ios/quixzoom/Info.plist; then
|
|
echo -e "${GREEN}✅${NC} Camera capability declared"
|
|
else
|
|
echo -e "${RED}❌${NC} Camera capability missing"
|
|
ERRORS=$((ERRORS + 1))
|
|
fi
|
|
|
|
echo ""
|
|
|
|
echo "🔐 Permissions Check"
|
|
echo "--------------------"
|
|
if grep -q "NSCameraUsageDescription" ios/quixzoom/Info.plist; then
|
|
echo -e "${GREEN}✅${NC} Camera permission description"
|
|
else
|
|
echo -e "${RED}❌${NC} Camera permission description missing"
|
|
ERRORS=$((ERRORS + 1))
|
|
fi
|
|
|
|
if grep -q "NSLocationWhenInUseUsageDescription" ios/quixzoom/Info.plist; then
|
|
echo -e "${GREEN}✅${NC} Location permission description"
|
|
else
|
|
echo -e "${RED}❌${NC} Location permission description missing"
|
|
ERRORS=$((ERRORS + 1))
|
|
fi
|
|
|
|
if grep -q "NSPhotoLibraryUsageDescription" ios/quixzoom/Info.plist; then
|
|
echo -e "${GREEN}✅${NC} Photo library permission description"
|
|
else
|
|
echo -e "${RED}❌${NC} Photo library permission description missing"
|
|
ERRORS=$((ERRORS + 1))
|
|
fi
|
|
|
|
echo ""
|
|
|
|
echo "================================"
|
|
if [ $ERRORS -eq 0 ]; then
|
|
echo -e "${GREEN}✅ Build verification PASSED${NC}"
|
|
echo " $WARNINGS warnings"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}❌ Build verification FAILED${NC}"
|
|
echo " $ERRORS errors, $WARNINGS warnings"
|
|
exit 1
|
|
fi
|