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/LaunchAgents
khi 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 WatchPaths
bấ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.
/Applications
thay đổi không? Và cũng để cấm bất kỳ ứng dụng để sửa đổi chính nó.