Можно ли запустить две копии приложения Mac с разными файлами plist?

338
Jason

Я пытаюсь запустить две версии Messagesприложения на OSX с двумя разными учетными записями пользователей. Я могу легко скопировать / вставить .appфайл и запустить приложение как два разных процесса, но поскольку они используют один и тот же plist и базу данных, у них одинаковые учетные записи / данные (вот хороший список файлов, которые он создает: https: // apple. stackexchange.com/a/107120/62420 )

Можно ли изменить место хранения одного или нескольких приложений? Могу ли я запустить приложение таким образом, чтобы при запросе доступа к файлу я мог изменить истинное местоположение файла запрашиваемого файла? Например, если он запрашивает, ~/Library/Preferences/com.apple.imservice.iMessage.plistя могу перенаправить это на ~/Library/Preferences/com.apple.imservice.iMessage2.plistиспользование имени процесса или идентификатора?

3
Никогда не пробовал это с приложением Apple, но обычно вы можете сделать такой трюк до компиляции ... так что я бы сказал, что вам не повезло. Tetsujin 6 лет назад 1
Chroot Jail должен работать на вас ssnobody 6 лет назад 0

2 ответа на вопрос

1
Samuel Tulach

Я думаю, что невозможно перенаправить процесс в другой файл с помощью его идентификатора или чего-то еще, но если вы хотите иметь больше учетных записей одновременно, вы можете создать нового пользователя и связать с ним другой Apple ID, а затем переключаться между учетными записями.

Apple предлагает вести отдельные учетные записи компьютеров для работы с несколькими пользователями на одном компьютере.

Конечно, вы можете создать для нее дополнительную учетную запись, чтобы настройки ее учетной записи iMessage отличались от ваших.


1
bbaassssiiee

Нет, это невозможно, потому что в OSX введено кодирование для предотвращения вмешательства в приложения. Plist является частью пакета, поэтому является частью подписи разработчика.

глубокая подпись кода

Info.plist в комплекте приложений определяет конфигурацию, которая не встроена в структуру пакета см . Идентификатор пакета относится к файлам предпочтений, которые он может записать. Поскольку идентификатор пакета является частью приложения и, следовательно, подписан, вы не можете создать альтернативный файл настроек.

Вы можете перепрыгивать через обручи и пытаться смонтировать и символически связать другие файловые системы, чтобы поменять местами эти файлы между запуском двух экземпляров приложения, но я сомневаюсь, что вы будете ежедневно рисковать этим.

Это комментарий, а не ответ, даже если в ответе +100 к награде. JakeGould 6 лет назад 0
Не примешь нет ответа? bbaassssiiee 6 лет назад 0
Эти файлы находятся не в комплекте, а в вашем домашнем каталоге Jason 6 лет назад 0
Информационный список, который сообщает ОС, что это за приложение, находится внутри пакета; открой и посмотри. Если вы не сохраняете какие-либо изменения, вы не нарушите сигнатуру, если вы это сделаете, можете [я не разработчик, но я уже портился с этим… и потерпел неудачу, даже собрав свой собственный версия и изменение внутренних компонентов - я мог заставить приложение сформировать независимую структуру папок / prefs, но я не мог заставить его читать / писать в него. Tetsujin 6 лет назад 0

Похожие вопросы