Куда кеширует Help Viewer файлы? Mac Help Viewer не отображает новейшую версию файлов HTML. Это работало в течение нескольких недель. Что случилось?

Xcode 4.5.2 Mountain Lion, Mac App

Я точно следую документации. Папка справки и ее подпапки добавляются в папку проектов / ресурсов и отображаются синим цветом.

Ссылки на папки были добавлены xcode при необходимости.

Независимо от того, просматриваю ли я файл HTML в Xcode или извне в текстовом редакторе, я вижу новую версию файла.

Внутри приложения отображаются страницы справки, привязки работают, но страницы более старые.

Конкретный файл, который не отображается с последней версией, это DgxFiles.html. Он расположен в схеме ниже как../pgs/DgxFiles.html.

Когда я получаю доступ к справке внутри приложения, я вижу более старую версию HTML-файла. Кажется, старые файлы справки куда-то кешируются.

Info.plist приложения имеет

<key>CFBundleHelpBookFolder</key>
<string>HungryMeHelp</string>
<key>CFBundleHelpBookName</key>
<string>com.DrummingGrouse.HungryMe.help</string>

Целевая страница HungryMe.html содержит:

<meta name="AppleTitle" CONTENT="com.DrummingGrouse.HungryMe.help"/>

Папка, которую я перетаскиваю в проект, называется: HungryMeHelp

Структура справочной папки:

HungryMeHelp/
    Contents/
    Info.plist
    Resources/
    shrd/ <shared artwork>
    English.lproj/
        HungryMe.html <title page>
        HungryMe.helpindex
            pgs/ <the rest of the content pages>
            sty/ <style sheets, generated list template>
            scrpt/ <scripts>

Я имею:

 0. Deleted /HungryMeHelp and re-added it.
 1. Cleaned the project.
 2. Reloaded Xcode
 3. Rebooted Mac

Удалите в папку Home > Library > Preferences следующие файлы

com.apple.help.plist
com.apple.helpui.plist
com.apple.helpviewer.plist

Удалите в папку "Домашняя страница"> "Библиотеки"> "Кэши" следующие папки

com.apple.helpui folder
com.apple.helpdata
com.apple.helpd
com.apple.helpviewer

Что мне не хватает?

Спасибо за прочтение. отметка

2 ответа

Решение

Я нашел ответы на мои вопросы о кеше Apple Help Viewer здесь:

http://www.cocoabuilder.com/archive/cocoa/312037-updating-an-app-help.html http://macergun.blogspot.com/2011/06/dealing-with-help-viewer-cache.html

Я нашел сообщение ниже на cocoabuilder.com. В результате я удалил существующие копии приложения из моей системы. Справочная система обновилась сразу после этого!


13 декабря 2011 года в 5:17 вечера Грэм Кокс написал:

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

Поиск в архивах, и вы обнаружите, что вы, вероятно, испытываете известную проблему, которая существует уже очень давно. Обычно это влияет только на разработчика, а не на ваших пользователей. Это особенно раздражает разработчика, если другая, более старая версия приложения все еще находится на вашем компьютере, в папке "Приложения" или, возможно, в виде более ранних продуктов сборки, которые все еще сидят, потому что затем уничтожение кешей справки и принудительное обновление не обязательно помешает системе использовать старую версию вашей справочной папки в более старой версии вашего приложения.

Когда я работаю со своими папками справки, я регулярно сжимаю все старые версии приложения в zip-файлы на время и очищаю кэш справки перед каждым тестом.

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

-

Билл Чизмен -

Я просто злюсь на кеш helpd при разработке справочной книги, как и все, что я нашел в Интернете, включая то, что найдено здесь, об очистке кеша «helpd», чтобы больше не работать (в списке на MacOS 12 - Монтерей).

Я обнаружил, что я ясно смотрю на файлы, открытые сетевым процессом HelpViewer, в то время как моя справка (не обновленная) была открыта с помощью Apple «Activity Monitor.app».

Оказывается, кеш теперь встроен в каталог контейнера в папке вашей библиотеки.

      ~/Library/Containers/com.apple.helpviewer/Data

В этом каталоге вы найдете файлы справки кэша в виде .*

например

      com.johnsmith.johnapps.com.johnsmith.johnapps.help*1.0.help/

выполнение команды rm -rf для этого каталога очистит кэш справки, используемый HelpViewer для разрабатываемой вами справочной книги. Для этого все равно необходимо убить демона helpd.

например

      rm -rf com.johnsmith.johnapps.com.johnsmith.johnapps.help*1.0.help/
pkill helpd

Обратите внимание, что изменение версии вашей справочной книги в файле plist не помогает. В моем случае, даже если я увеличу версию справочной книги plist (см. Создание справки Apple), сгенерированный кеш по-прежнему имеет версию 1.0, даже если он был восстановлен после обновления версии.

Другие вопросы по тегам