Sí, puede cambiar el binario, o incluso cambiar el Info.plist, pero al igual que cambiar el binario que haga, tendrá que volver a hacerlo cada vez que se actualice la aplicación. No hay forma de hacerlo sin cambiar la aplicación de una manera que no se sobrescribirá cuando se actualice.
Puede realizar sus cambios automáticamente con un Agente de lanzamiento.
Guarde lo siguiente en ~/Library/LaunchAgents
como com.yourname.youragent.plist
, luego ejecute launchctl load ~/Library/LaunchAgents/com.yourname.youragent.plist
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.yourname.youragent</string>
<key>OnDemand</key>
<true/>
<key>Program</key>
<string>cp</string>
<key>ProgramArguments</key>
<array>
<string>/Users/grgarside/test/MyApp</string>
<string>/Applications/MyApp.app/Contents/MacOS/</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Applications/MyApp.app/Contents/MacOS/MyApp</string>
</array>
</dict>
</plist>
La secuencia de comandos anterior verificará WatchPaths
cualquier modificación (en este caso, está viendo el binario para una aplicación) y se ejecutará cp
para copiar su binario en la aplicación en / Aplicaciones.
/Applications
se cambia algo ? Y también para prohibir que cualquier aplicación se modifique a sí misma.