Có, bạn có thể thay đổi nhị phân hoặc thậm chí thay đổi Info.plist, nhưng giống như thay đổi nhị phân bạn thực hiện sẽ cần phải thực hiện lại điều này mỗi khi ứng dụng được cập nhật. Không có cách nào để làm điều này mà không thay đổi ứng dụng theo cách không bị ghi đè khi cập nhật.
Bạn có thể tự động thực hiện các thay đổi của mình với Launch Agent.
Save the sau trong ~/Library/LaunchAgentskhi com.yourname.youragent.plist, sau đó chạy 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>
Kịch bản trên sẽ xem WatchPathsbất kỳ sửa đổi nào (trong trường hợp này, nó đang xem tệp nhị phân cho một ứng dụng) và sẽ chạy cpđể sao chép tệp nhị phân của bạn vào ứng dụng trong / Ứng dụng.
/Applicationsthay đổi không? Và cũng để cấm bất kỳ ứng dụng để sửa đổi chính nó.