Програми періодично починають показувати діалогові вікна "Не вдалося зберегти документ"


8

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

Не вдалося зберегти документ "2.txt".

Ваші зміни не будуть збережені, поки проблема не буде вирішена. Ви також можете скопіювати документ або скасувати зміни, щоб закрити його.

Мені доведеться вийти з програми та знову відкрити програму, щоб знову зберегти щось.

  • Я відключив і функцію відновлення та блокування файлів автоматично в налаштуваннях системи
  • Файли зазвичай були у звичайних папках під моєю домашньою папкою, наскільки я не можу сказати про них нічого особливого
  • Я спробував відновити дозволи
  • Підпис коду 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, але він вимикає пісочницю та вносить кілька інших змін.

Відповіді:


3

Здається, що це насправді помилка у впровадженні Apple в пісочницю. Це означає, що жоден із наведених вище кроків не повинен допомогти. У нас був такий самий вихід консолі в одному з наших додатків (включаючи неможливість збереження тексту) і витратили досить багато часу на пошук причини помилки (див. Цей радар ). З того, що ми з’ясували, видається, що після декількох разів завантаження нещодавно відкритих документів програма більше не може зберігати файли, оскільки не отримує на це дозвіл. Ви можете спробувати очистити меню нещодавно використаних документів, можливо, це допомагає.


1

У Лева є прихований спосіб відновлення дозволів, який здається ще більш ефективним:

  1. Перезапустіть Lion, і перш ніж почути звук , утримуйте Cmd+ R, щоб отримати доступ до Recovery Lion .
  2. Клацніть пункт Утиліти на панелі меню, а потім натисніть Термінал.
  3. У вікні терміналу введіть нове слово і натисніть Return.
  4. Запускається вікно утиліти для скидання пароля, але ви не збираєтесь скидати пароль. Замість цього натисніть на значок жорсткого диска вашого Mac вгорі. У спадному меню під ним виберіть обліковий запис користувача, у якому виникли проблеми.
  5. У нижній частині вікна ви побачите область, позначена Скидання дозволів домашньої каталоги та ACL. Клацніть там кнопку Скидання.

Схоже, ця функція вирішила ту ж проблему, що і Дуайт Сільверман . Здогадайтесь, варто спробувати.

Мабуть, відновлення дозволів за допомогою утиліти Disk Utility, як зазвичай, не дає відновлення дозволів користувачів на файл.


Я спробував це, навіть якщо дозволи та власники файлів були абсолютно нормальними. Я прийму цю відповідь, якщо через тиждень я не зіткнуся з цими діалогами.
Лрі

TextEdit знову показав помилку (з тим же результатом консолі). Тож я припускаю, що скидання дозволів не допомогло ...
Lri

Ви працюєте з файлом, який відсутній у вашій локальній машині? Мабуть, файл у iDisk або спільна папка?
Текафремо

Ні. Журнали file://localhostчомусь просто показують локальні шляхи як URL-адреси.
Лрі

1
  1. Виберіть весь текст документа в буфер обміну ( Command+A
  2. Закрийте та виберіть, щоб скасувати зміни в документі.
  3. Повторно відкрийте документ.
  4. Виберіть усе, що є в документі (тепер стара копія).
  5. Вставте раніше скопійований матеріал.
  6. Тепер збережіть новий і повний документ.

0

Скопіюйте вміст і вставте його в інший документ того ж типу.

У програмі Keynote виберіть усі слайди у вікні «Навігатор» та перетягніть їх у ту саму панель нового документа.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.