Иногда приложения начинают показывать диалоги «Не удалось автоматически сохранить документ»

8

Время от времени какое-то приложение (обычно TextEdit) начинает показывать подобные диалоги, когда я пытаюсь закрыть или сохранить любой документ:

Документ «2.txt» не может быть автоматически сохранен.

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

Мне придется выйти и снова открыть приложение, чтобы снова что-то сохранить.

  • Я отключил как Resume, так и автоматическую блокировку файлов в Системных настройках.
  • Файлы обычно находились в обычных папках в моей домашней папке, и, насколько я могу судить, в них не было ничего особенного
  • Я пытался восстановить разрешения
  • Подпись кода TextEdit действительна

system.log обычно содержит такие сообщения:

5/8/12 9:04:01.358 PM [0x0-0x17b17b].com.apple.TextEdit: [ERROR] GSLibrary.c:_AddGenerationInternal:393  Failed to consume sandbox extension; error 12 (Cannot allocate memory)
5/8/12 9:04:01.361 PM TextEdit: NSFileVersion tried to tried to add a new generation and failed. Versioned file URL: file://localhost/Users/lauri/Notes/2.txt, contents URL: file://localhost/Users/lauri/Notes/2.txt, error: Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)" UserInfo=0x10b24d070 {}
5/8/12 9:04:01.362 PM TextEdit: NSDocument failed to preserve the old version of a document. Here's the error:
Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)" UserInfo=0x10b24d070 {}

Failed to consume sandbox extension; error 12 (Cannot allocate memory)? Кто-нибудь знает, что здесь происходит?

Изменить: я не видел этих ошибок после того, как я заменил TextEdit на TextEditPlus . Он основан на исходном коде TextEdit, но отключает песочницу и вносит несколько других изменений.

LRI
источник

Ответы:

4

Похоже, что это на самом деле ошибка в песочнице Apple. Это означает, что ни один из вышеперечисленных шагов не должен помочь. У нас был один и тот же вывод консоли в одном из наших приложений (включая невозможность сохранения текста) и мы потратили довольно много времени на поиск причины ошибки (см. Этот радар ). Из того, что мы выяснили, кажется, что после получения недавно открытых документов несколько раз, приложение не может сохранять файлы больше, потому что оно не получает разрешения на это. Вы можете попробовать очистить меню недавно использованных документов, возможно, это поможет.

Гетц
источник
В меню «Открыть недавние» на странице «Очистка страниц» исправлена ​​эта проблема для страниц 8.1 под macOS 10.14.6
Seth Noble
1

В Lion есть скрытый способ восстановления прав доступа, который кажется еще более эффективным:

  1. Перезапустите Lion, и, прежде чем услышать перезвон , нажмите и удерживайте Cmd+ R, чтобы получить доступ к Lion Recovery .
  2. Щелкните пункт «Утилиты» в строке меню, затем нажмите «Терминал».
  3. В окне терминала введите resetpassword и нажмите Return.
  4. Откроется окно утилиты сброса пароля, но вы не собираетесь сбрасывать пароль. Вместо этого нажмите на значок жесткого диска вашего Mac в верхней части. В раскрывающемся списке ниже выберите учетную запись пользователя, в которой возникают проблемы.
  5. В нижней части окна вы увидите область, помеченную как Сброс разрешений и ACL для домашнего каталога . Нажмите кнопку сброса там.

Похоже, эта функция исправила ту же проблему с Дуайтом Сильверманом . Думаю, стоит попробовать.

По-видимому, восстановление разрешений с помощью Дисковой утилиты, как обычно, не восстанавливает разрешения для файлов пользователей.

Thecafremo
источник
Я попробовал это, хотя права и владельцы файлов были полностью нормальными. Я приму этот ответ, если я не столкнусь с этими диалогами через неделю или около того.
Lri
TextEdit снова показал ошибку (с тем же выводом на консоль). Поэтому я предполагаю, что сброс настроек не помог ...
Lri
Вы работаете с файлом, которого нет на вашем локальном компьютере? Возможно, файл в iDisk или в папке общего доступа?
Thecafremo
Нет. Журналы file://localhostпо какой-то причине просто показывают локальные пути в виде URL.
Lri
1
  1. Выделить весь текст в документе в буфер обмена ( Command+A
  2. Выйдите и выберите, чтобы отменить изменения в документе.
  3. Повторно откройте документ.
  4. Выделите все, что есть в документе (теперь старая копия).
  5. Вставьте материал, который был ранее скопирован.
  6. Теперь сохраните новый и полный документ.
decklan
источник
0

Скопируйте содержимое и вставьте его в другой документ того же типа.

В Keynote выберите все слайды в представлении «Навигатор» и перетащите их на ту же панель нового документа.

user200384
источник