ใช่คุณสามารถเปลี่ยนไบนารีหรือแม้แต่เปลี่ยน Info.plist แต่เช่นเดียวกับการเปลี่ยนไบนารีที่คุณทำคุณจะต้องทำสิ่งนี้อีกครั้งทุกครั้งที่มีการอัปเดตแอป ไม่มีวิธีทำเช่นนี้โดยไม่เปลี่ยนแอปในลักษณะที่จะไม่ถูกเขียนทับเมื่อมีการอัปเดต
คุณสามารถทำการเปลี่ยนแปลงของคุณโดยอัตโนมัติด้วย Launch Agent
บันทึกต่อไปนี้ใน~/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
/Applications
มีการเปลี่ยนแปลงหรือไม่? และยังห้ามมิให้แอพแก้ไขตัวเอง