1.0.0 Release

This commit is contained in:
Jerico Thomas
2025-07-25 15:31:22 -04:00
parent 6c5f8c399e
commit 805524b78c
19 changed files with 1323 additions and 95 deletions

138
tests/test_app.sh Executable file
View File

@@ -0,0 +1,138 @@
#!/bin/bash
# Test script for HereIAm.app
# Verifies the built application works correctly
set -e
echo "🧪 Testing HereIAm.app..."
echo "========================="
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
APP_PATH="../dist/HereIAm.app"
# Check if app exists
if [ ! -d "$APP_PATH" ]; then
echo -e "${RED}❌ Error: $APP_PATH not found!${NC}"
echo "Please run '../build_app.sh' first."
exit 1
fi
echo -e "${BLUE}📱 Testing app structure...${NC}"
# Test executable exists
if [ -f "$APP_PATH/Contents/MacOS/HereIAm" ]; then
echo -e "${GREEN}✅ Executable found${NC}"
else
echo -e "${RED}❌ Executable missing${NC}"
exit 1
fi
# Test Info.plist exists
if [ -f "$APP_PATH/Contents/Info.plist" ]; then
echo -e "${GREEN}✅ Info.plist found${NC}"
# Check bundle identifier
bundle_id=$(plutil -extract CFBundleIdentifier raw "$APP_PATH/Contents/Info.plist" 2>/dev/null || echo "")
if [ "$bundle_id" = "net.tekop.hereiam" ]; then
echo -e "${GREEN}✅ Bundle identifier correct${NC}"
else
echo -e "${YELLOW}⚠️ Bundle identifier: $bundle_id${NC}"
fi
# Check version
version=$(plutil -extract CFBundleVersion raw "$APP_PATH/Contents/Info.plist" 2>/dev/null || echo "")
echo -e "${BLUE}📋 Version: $version${NC}"
else
echo -e "${RED}❌ Info.plist missing${NC}"
exit 1
fi
# Test assets are bundled
if [ -d "$APP_PATH/Contents/Resources/assets" ]; then
echo -e "${GREEN}✅ Assets directory found${NC}"
# Check for required icons
for icon in "Enabled.icns" "Disabled-Light.icns" "Disabled-Dark.icns"; do
if [ -f "$APP_PATH/Contents/Resources/assets/$icon" ]; then
echo -e "${GREEN}$icon found${NC}"
else
echo -e "${RED}$icon missing${NC}"
exit 1
fi
done
else
echo -e "${RED}❌ Assets directory missing${NC}"
exit 1
fi
# Test code signing (if signed)
echo -e "${BLUE}🔍 Checking code signature...${NC}"
if codesign -dv "$APP_PATH" 2>/dev/null; then
echo -e "${GREEN}✅ App is code signed${NC}"
# Verify signature
if codesign --verify --verbose "$APP_PATH" 2>/dev/null; then
echo -e "${GREEN}✅ Signature is valid${NC}"
else
echo -e "${YELLOW}⚠️ Signature verification failed${NC}"
fi
else
echo -e "${YELLOW}⚠️ App is not code signed${NC}"
echo -e "${YELLOW} (Users may see security warnings)${NC}"
fi
# Test Gatekeeper assessment (if signed)
echo -e "${BLUE}🛡️ Checking Gatekeeper assessment...${NC}"
if spctl --assess --verbose "$APP_PATH" 2>/dev/null; then
echo -e "${GREEN}✅ Gatekeeper will allow this app${NC}"
else
echo -e "${YELLOW}⚠️ Gatekeeper may block this app${NC}"
echo -e "${YELLOW} (Code signing and notarization recommended for distribution)${NC}"
fi
# Get app size
app_size=$(du -sh "$APP_PATH" | cut -f1)
echo -e "${BLUE}📦 App bundle size: $app_size${NC}"
# Basic launch test (background)
echo -e "${BLUE}🚀 Testing app launch...${NC}"
"$APP_PATH/Contents/MacOS/HereIAm" &
APP_PID=$!
# Wait a moment for launch
sleep 3
# Check if process is running
if kill -0 $APP_PID 2>/dev/null; then
echo -e "${GREEN}✅ App launched successfully${NC}"
# Clean shutdown
kill $APP_PID 2>/dev/null || true
sleep 1
# Force kill if still running
kill -9 $APP_PID 2>/dev/null || true
echo -e "${GREEN}✅ App shutdown cleanly${NC}"
else
echo -e "${RED}❌ App failed to launch or crashed${NC}"
exit 1
fi
echo ""
echo -e "${GREEN}🎉 All tests passed!${NC}"
echo -e "${GREEN}📱 HereIAm.app is ready for distribution${NC}"
echo ""
echo -e "${YELLOW}📝 Next steps:${NC}"
echo "1. Test manually: open $APP_PATH"
echo "2. Create DMG: ../create_dmg.sh"
echo "3. For distribution: code sign and notarize"
echo ""