हां, आप बाइनरी को बदल सकते हैं, या यहां तक कि 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
बदले जाने पर मेरी स्क्रिप्ट को स्वचालित रूप से चलाने का एक तरीका है? और खुद को संशोधित करने के लिए किसी भी एप्लिकेशन को मना करने के लिए भी।