Ну и если что-то изменилось с тех пор как я писал свой проект, и теперь макось не позволяет перезаписать запущенный файл, то можно сделать так: делаете маленький лаунчер, можно даже в него сплеш-скрин зафигачить, он на запуске смотрит в тот же бандл и если там несколько версий основоного исполняемого файла (они там с номерами версий сохранены), то удаляет старый и запускает новый. Тогда на обновлении просто новый бинарник в бандл загружаете (в каталог MacOs) и перезапускаете (в смысле запускаете лаунчер и одновременно выходите из основного приложения)