So the annotations in PDFKit do let you load them and skim is clearly saving them correctly. However, Skim isn't using PDFKit to load annotations from a pdf file when there is no SkimNotes file. Rather it is using CGPDFDictionary from CoreGraphics and trying to reconstruct the pdf notes that way. While I think that is probably supposed to work, it looks like that method tries to fetch some global annotation dictionary while the way PDFKit saves annotations requires that you loop through each page...