同じ問題で数時間苦労しました。
またはキーがないか、 CFBundleNameが正しくないID: (null)
ことを意味します。通常、HelpViewer ログにバンドル ID が表示されるはずです。CFBundleName
HPDBookTitle
ヘルプブックInfo.plist
ファイルに少なくとも次の6つのキーが構成されていることを確認した後、機能しました。
...
<key>CFBundleIdentifier</key>
<string>com.company.project.help</string>
<key>CFBundleName</key>
<string>ProjectHelp</string>
<key>HPDBookAccessPath</key>
<string>index.html</string>
<key>HPDBookIconPath</key>
<string>icon.png</string>
<key>HPDBookTitle</key>
<string>Project Help</string>
<key>HPDBookType</key>
<string>3</string>
...
メイン プロジェクトInfo.plist
ファイルには次のレコードが含まれます。
...
<key>CFBundleHelpBookFolder</key>
<string>ProjectHelp.help</string>
<key>CFBundleHelpBookName</key>
<string>com.company.project.help</string>
...
ProjectHelp.help
これは、メイン プロジェクトの Resources フォルダーにコピーされるターゲットがあることを前提としています。
次に、リリース スキームを構築し、プロジェクトの .app ファイルを Applications フォルダーにコピーします。その後、ヘルプブックが機能するようになりました。はい、署名された .app を Applications フォルダーにインストールした後。
それでも機能しない場合は、HelpViewer プログラムのキャッシュをクリアすることもできます。HelpViewer のリセットについては、こちらで説明しています