Aplikacje czasami zaczynają wyświetlać okna dialogowe „Nie można automatycznie zapisać dokumentu”

8

Od czasu do czasu niektóre aplikacje (zazwyczaj TextEdit) zaczynają wyświetlać takie okna dialogowe, gdy próbuję zamknąć lub zapisać dowolny dokument:

Nie można automatycznie zapisać dokumentu „2.txt”.

Twoje zmiany nie zostaną zapisane, dopóki problem nie zostanie rozwiązany. Możesz także powielić dokument lub odrzucić zmiany, aby je zamknąć.

Będę musiał zamknąć i ponownie otworzyć aplikację, aby ponownie coś zapisać.

  • Wyłączyłem automatyczne wznawianie i blokowanie plików w Preferencjach systemowych
  • Pliki zwykle znajdowały się w normalnych folderach w moim folderze domowym i, o ile wiem, nie było w nich nic specjalnego
  • Próbowałem naprawić uprawnienia
  • Podpis kodu TextEdit jest prawidłowy

system.log zwykle zawiera takie wiadomości:

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)? Czy ktoś wie, co się tutaj dzieje?

Edycja: Nie widziałem tych błędów po zamianie TextEdit na TextEditPlus . Opiera się na kodzie źródłowym TextEdita, ale wyłącza piaskownicę i wprowadza kilka innych zmian.

Lri
źródło

Odpowiedzi:

4

Wygląda na to, że jest to błąd w implementacji piaskownicy Apple. Oznacza to, że żaden z powyższych kroków nie powinien pomóc. Mieliśmy takie same dane wyjściowe konsoli w jednej z naszych aplikacji (w tym brak możliwości zapisania tekstu) i spędziliśmy sporo czasu na znalezieniu przyczyny błędu (zobacz ten radar ). Z tego, co odkryliśmy, wydaje się, że po kilkakrotnym pobraniu ostatnio otwieranych dokumentów aplikacja nie może już zapisywać plików, ponieważ nie ma na to pozwolenia. Możesz spróbować wyczyścić menu ostatnio używanych dokumentów, może to pomoże.

Goetz
źródło
Czyszczenie menu „Otwórz ostatnie” stron rozwiązało ten problem dla stron 8.1 w systemie macOS 10.14.6
Seth Noble,
1

W Lion jest ukryty sposób naprawy uprawnień, który wydaje się jeszcze bardziej skuteczny:

  1. Uruchom ponownie Lion i zanim usłyszysz dzwonek , przytrzymaj Cmd+ R, aby uzyskać dostęp do Lion Recovery .
  2. Kliknij pozycję Narzędzia na pasku menu, a następnie kliknij Terminal.
  3. W oknie terminala wpisz resetpassword i naciśnij klawisz Return.
  4. Zostanie otwarte okno narzędzia do resetowania hasła, ale nie zamierzasz resetować hasła. Zamiast tego kliknij ikonę dysku twardego komputera Mac u góry. Z menu poniżej wybierz konto użytkownika, w którym masz problemy.
  5. W dolnej części okna zobaczysz obszar o nazwie Resetuj uprawnienia katalogu głównego i listy ACL. Kliknij przycisk Resetuj tam.

Wygląda na to, że ta funkcja naprawiła ten sam problem dla Dwighta Silvermana . Chyba warto spróbować.

Najwyraźniej naprawa uprawnień za pomocą Narzędzia dyskowego, jak zwykle, nie naprawia uprawnień użytkowników do plików.

Thecafremo
źródło
Próbowałem, mimo że uprawnienia i właściciele plików były całkowicie normalne. Zaakceptuję tę odpowiedź, jeśli nie wpadnę na te okna dialogowe przez około tydzień.
Lri
TextEdit ponownie pokazał teraz błąd (z tym samym wyjściem konsoli). Więc
zakładam,
Czy pracujesz z plikiem, którego nie ma na komputerze lokalnym? Może plik w iDisku lub folder współdzielony?
Thecafremo,
Nie. Dzienniki pokazują file://localhostz jakiegoś powodu lokalne ścieżki jako adresy URL.
Lri
1
  1. Zaznacz cały tekst w dokumencie do schowka ( Command+A
  2. Wyjdź i wybierz odrzucić zmiany w dokumencie.
  3. Ponownie otwórz dokument.
  4. Wybierz wszystko, co jest w dokumencie (teraz stara kopia).
  5. Wklej wcześniej skopiowany materiał.
  6. Teraz zapisz nowy i kompletny dokument.
decklan
źródło
0

Skopiuj zawartość i wklej ją do innego dokumentu tego samego typu.

W Keynote zaznacz wszystkie slajdy w widoku Nawigatora i przeciągnij je do tego samego panelu nowego dokumentu.

użytkownik200384
źródło