Crossover позволяет запускать в среде macOS приложения/игры, предназначенные для Windows. Бесплатный аналог — Porting Kit.
Crossover обойдется в $ 64 доллара, но предусмотрен 14-дневный ознакомительный период, который можно сбрасывать бесконечно. Как это сделать, можно почитать здесь или здесь.
Пример скрипта (суть в том, что из CrossOver.plist удаляем записи FirstRunDate и FirstRunVersion):
#!/usr/bin/env bash
CROSSOVER_PATH="/Applications/CrossOver.app/Contents/MacOS"
# Kill CrossOver processes
while true; do
pids=$(pgrep -f "CrossOver")
unique_pids=()
for pid in "${pids[@]}"; do
if [[ -n "$pid" && ! " ${unique_pids[@]} " =~ " ${pid} " ]]; then
unique_pids+=("$pid")
fi
done
if [ ${#unique_pids[@]} -gt 0 ]; then
echo "Killing CrossOver processes: ${unique_pids[@]}"
kill -9 "${unique_pids[@]}" >/dev/null 2>&1
else
echo "No CrossOver processes found."
break
fi
sleep 3
done
# Reset trial start date of CrossOver
while true; do
if /usr/libexec/PlistBuddy -c "Print :FirstRunDate" ~/Library/Preferences/com.codeweavers.CrossOver.plist &>/dev/null; then
plutil -remove FirstRunDate ~/Library/Preferences/com.codeweavers.CrossOver.plist
fi
if /usr/libexec/PlistBuddy -c "Print :FirstRunVersion" ~/Library/Preferences/com.codeweavers.CrossOver.plist &>/dev/null; then
plutil -remove FirstRunVersion ~/Library/Preferences/com.codeweavers.CrossOver.plist
fi
if ! /usr/libexec/PlistBuddy -c "Print :FirstRunDate" ~/Library/Preferences/com.codeweavers.CrossOver.plist &>/dev/null; then
echo "FirstRunDate not found in plist file. Deletion succesfull."
break
fi
done
# Reset trial start date of the bottles
while true; do
for i in ~/Library/Application\ Support/CrossOver/Bottles/*; do
if [ -d "$i" ]; then
sed -i '' '/\[Software\\\\CodeWeavers\\\\CrossOver\\\\cxoffice\].*/,+5d' "$i/system.reg"
break
fi
done
if ! grep -q '\[Software\\\\CodeWeavers\\\\CrossOver\\\\cxoffice\]' "$i/system.reg"; then
echo "Bottle trial reset succesfull."
break
fi
done
/usr/bin/osascript -e "display notification \"Crossover Trial Updated\""