tomaz / appledoc

Objective-c code Apple style documentation set generator.

Home Page:http://gentlebytes.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Xcode 9.3 beta 3 does not contain docsetutil

jmoody opened this issue · comments

Reproduce

Requires Xcode 9.3 beta 3 (only available on High Sierra)

$ xcrun xcodebuild -version
Xcode 9.3
Build version 9Q117m

$ cd appledoc; git checkout master; git pull
$ ./install-appledoc.sh -b ../DeviceAgent.iOS/bin -t ../DeviceAgent.iOS/.appledoc

$ DeviceAgent.iOS/bin/appledoc \
   --install-docset \    # Fails with or without this flag
   < other args >

Expected

appledoc to generate docs and exit with 0

Found

ERROR | !> xcrun: error: unable to find utility "docsetutil", not a developer tool or in PATH
WARN | docsetutil failed to index the documentation set, continuing with what was indexed...
Generation step 4/4 failed: GBDocSetInstallGenerator failed generating output, aborting!
Documentation set was installed, but couldn't reload documentation within Xcode.
Expected end of line but found identifier.
ERROR: Failed to create documentation

Analysis

$ DEVELOPER_DIR=/Xcode/9.2/Xcode.app/Contents/Developer xcrun -f docsetutil
/Xcode/9.2/Xcode.app/Contents/Developer/usr/bin/docsetutil

$ DEVELOPER_DIR=/Xcode/9.3/Xcode-beta.app/Contents/Developer xcrun -f docsetutil
xcrun: error: unable to find utility "docsetutil", not a developer tool or in PATH

9.3 GM version from the Mac App Store also missing this tool.

commented

Support for custom docsets is slowly getting away with time, seems like Xcode 9.3 cuts the chord... You can try to just generate docset, without installing (though expect it'll produce same results). Creating html should not be affected though...

Seems not just docsetutil was removed but DADocSetAccess.framework as well.

Tested with options:

--create-html \
--no-create-docset \
--no-install-docset \
--no-publish-docset \

which can create htmls w/o error on Xcode 9.3 GM.

commented

I suppose it was all handled by the same library behind the scenes. Unfortunately it seems docsets are not direction going forward for Apple. On the other hand, Xcode gained ability to gather and show documentation live from comments, so there's no need for docsets either.

commented

same question

same question too

Xcode 9.3(9E145) App Store version

commented

Well, the only thing we can really do about this is to open radars asking for this functionality to get back with future versions of Xcode... Perhaps custom implementation of docsetutils would work for the moment, but don't think it's worth investing time in it, as Xcode may lose ability to load docsets as all. It certainly seems this way. Besides, I think showing live comments is better solution overall and works for 3rd party libraries too.

I am still facing this issue in XCode 9.4.1.
Any update on this?

commented

No update. Once Apple changes direction, there's not much we can do. I didn't find a workaround either, so my comment above still holds...

commented

I know this is a closed issue, but for what it's worth, I was able to work around this by downloading the old docsetutil command and framework linked to at Kapeli/Dash-User-Contributions#1884

Don't know how long it will continue to work, but for the moment it lets me continue to use appledoc to create docsets.

commented

Oh, nice! Didn't occur to me this would work, but good catch!

I wrote a tool that converts Doxygen documentation to Dash Docsets. Downloading an old version of Xcode was a hassle and I wanted to be able to generate documentation on a Linux VM instance anyway. Hope others find it useful https://github.com/chinmaygarde/doxygen2docset

Perhaps --no-create-docset should be the default, as generating docsets doesn't work out of the box?