mirror of
https://github.com/harivansh-afk/nix.git
synced 2026-04-15 20:03:10 +00:00
51 lines
1.6 KiB
Bash
51 lines
1.6 KiB
Bash
project=$(find . -maxdepth 1 -name "*.xcodeproj" | head -1)
|
|
scheme=$(basename "$project" .xcodeproj)
|
|
derived=".derived-data"
|
|
sim_name="${1:-iPhone 16e}"
|
|
|
|
if [[ -z "$project" ]]; then
|
|
echo "No .xcodeproj found in current directory"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Building $scheme..."
|
|
if ! xcodebuild -project "$project" -scheme "$scheme" \
|
|
-destination "platform=iOS Simulator,name=$sim_name" \
|
|
-derivedDataPath "$derived" build -quiet; then
|
|
echo "Build failed"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Build succeeded. Launching simulator..."
|
|
|
|
xcrun simctl boot "$sim_name" 2>/dev/null || true
|
|
open -a Simulator
|
|
|
|
app_path="$derived/Build/Products/Debug-iphonesimulator/$scheme.app"
|
|
bundle_id=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "$app_path/Info.plist")
|
|
|
|
echo "Installing $scheme..."
|
|
while ! xcrun simctl install "$sim_name" "$app_path" 2>/dev/null; do
|
|
sleep 0.5
|
|
done
|
|
|
|
echo "Launching $bundle_id..."
|
|
while ! xcrun simctl launch "$sim_name" "$bundle_id" 2>&1 | grep -q "$bundle_id"; do
|
|
sleep 0.5
|
|
done
|
|
|
|
echo "Launched $bundle_id - streaming logs (Ctrl+C to stop)"
|
|
echo "----------------------------------------"
|
|
|
|
xcrun simctl spawn "$sim_name" log stream \
|
|
--predicate "(subsystem CONTAINS '$bundle_id' OR process == '$scheme') AND NOT subsystem BEGINSWITH 'com.apple'" \
|
|
--style compact \
|
|
--color always 2>/dev/null | while read -r line; do
|
|
if [[ "$line" == *"error"* ]] || [[ "$line" == *"Error"* ]]; then
|
|
printf '\033[31m%s\033[0m\n' "$line"
|
|
elif [[ "$line" == *"warning"* ]] || [[ "$line" == *"Warning"* ]]; then
|
|
printf '\033[33m%s\033[0m\n' "$line"
|
|
else
|
|
echo "$line"
|
|
fi
|
|
done
|