I found your project working on the same goal, while trying to understand, how the iBooksData2.plist is connected to the Books.plist.
Trying your solution I got the same issue as I have while still learning all this:
I purchased and downloaded ePub books directly on my iPad via O'Reilly and cannot programmatically identify the book a note belongs to.
BookmarkExtractor shows "Unknown: " (it actually shows the key, see below)
This is the entry of my iBooksData2.plist file for the Book shown in the screenshot above:
<dict>
<key>annotation</key>
<string>nice question!
if the part imagined or created the whole, is the part still a part of it's creations or is it growing and becoming the whole of itself and it's creation?</string>
<key>bookDatabaseKey</key>
<string>BDB9C1823D87F1114DBE60972EF0EB20</string>
<key>date</key>
<integer>1341301122</integer>
<key>deletedFlag</key>
<false/>
<key>highlightColor</key>
<integer>2</integer>
<key>lastModification</key>
<integer>1341301238</integer>
<key>locationBPlist</key>
<data>
YnBsaXN0MDDWAQIDBAUGBwgMIDAxWWVuZE9mZnNldFVz
dXBlcllzdGFydFBhdGhXZW5kUGF0aFVjbGFzc1tzdGFy
dE9mZnNldCJBUAAA0gkFCgtXb3JkaW5hbBAIWkJLTG9j
YXRpb26mDRQYGh0f0w4PEBESE1ljbGFzc05hbWVVaW5k
ZXhXdGFnTmFtZVdjaGFwdGVyEAFTZGl20w4PEBUWF1hl
cGlncmFwaBACU2RpdtIPEBIZUXDTDg8QGxYcWGVtcGhh
c2lzVHNwYW7SDxASHlJlbdEPEqYhJCcqLC/TDg8QIhIj
V2NoYXB0ZXJTZGl20w4PECUWJlhlcGlncmFwaFNkaXbT
Dg8QKBYpW2F0dHJpYnV0aW9uU2RpdtIPEBIrVHNwYW7T
Dg8QLRYuW2F0dHJpYnV0aW9uVHNwYW7RDxJeQktFcHVi
TG9jYXRpb24iAAAAAAAIABUAHwAlAC8ANwA9AEkATgBT
AFsAXQBoAG8AdgCAAIYAjgCWAJgAnACjAKwArgCyALcA
uQDAAMkAzgDTANYA2QDgAOcA7wDzAPoBAwEHAQ4BGgEe
ASMBKAEvATsBQAFDAVIAAAAAAAACAQAAAAAAAAAyAAAA
AAAAAAAAAAAAAAABVw==
</data>
<key>ordinal</key>
<integer>8</integer>
<key>serverSyncUniqueId</key>
<string>823EB3B7-2673-4712-879F-33F1215F025B</string>
<key>text</key>
<string>How can a part know the whole?"
—Blaise Pascal</string>
<key>textualContext</key>
<string>"How can a part know the whole?" —Blaise Pascal</string>
<key>type</key>
<integer>3</integer>
</dict>
This is the entry of my Books.plist file for the Book shown in the screenshot above:
Now there is an additional pist file on the iOS file system called Purchases.plist, which iExplorer (previousy known as iPhoneExplorer) could neither save to my OS X, nor open it or display it's content within iExplorer.
DiskAid however was able to do so, so instead of the Books.plist I used the Purchases.plist (/Books/Purchases/Purchases.plist) with BookmarkExtractor, here is the dictionary snippet of the book:
Hi Lucas,
I found your project working on the same goal, while trying to understand, how the iBooksData2.plist is connected to the Books.plist.
Trying your solution I got the same issue as I have while still learning all this:
I purchased and downloaded ePub books directly on my iPad via O'Reilly and cannot programmatically identify the book a note belongs to.
BookmarkExtractor shows "Unknown:" (it actually shows the key, see below)
This is the entry of my iBooksData2.plist file for the Book shown in the screenshot above:
This is the entry of my Books.plist file for the Book shown in the screenshot above:
Now there is an additional pist file on the iOS file system called Purchases.plist, which iExplorer (previousy known as iPhoneExplorer) could neither save to my OS X, nor open it or display it's content within iExplorer.
DiskAid however was able to do so, so instead of the Books.plist I used the Purchases.plist (/Books/Purchases/Purchases.plist) with BookmarkExtractor, here is the dictionary snippet of the book:
resulting in a correct identification, so it already works if one knows about this special plist-file :)
Now I have not a single clue how Objective-C works ... but I hope this helps to improve your wonderful app.
Cheers, Ulf