예, 바이너리를 변경하거나 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의 앱에 복사하기 위해 실행 됩니다.
/Applications
이 변경 될 때마다 스크립트를 자동으로 실행하는 방법 이 있습니까? 또한 모든 앱이 자체 수정하는 것을 금지합니다.