Так, ви можете змінити двійкове або навіть змінити Info.plist, але, як змінити створений вами бінарний файл, потрібно буде робити це ще раз під час оновлення програми. Немає способу це зробити, не змінюючи додаток таким чином, що він не буде перезаписаний під час оновлення.
Ви можете автоматично внести свої зміни за допомогою агента запуску.
Збережіть наступне у ~/Library/LaunchAgents
як com.yourname.youragent.plist
, а потім запустіть 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>
Наведений вище сценарій буде стежити WatchPaths
за будь-якими модифікаціями (у цьому випадку він переглядає двійкові файли для програми) і запускатиметься cp
копіювати ваш двійковий файл у додаток у / Програми.
/Applications
змінено? А також заборонити будь-якій програмі змінювати себе.