Your ebook is finished! You did your homework, fixed all the nasty errors that epubcheck threw at you, and your ebook is done. The only remaining step is to send it to Apple’s review team and cross your fingers.
A week passes and…crap, Apple rejects the file for some technical reason:
> ERROR ITMS-5107: Fixed layout books must identify the start of the book’s main content by including a guide (EPUB 2) or Landmarks (EPUB 3), or provide a custom sample. For more information see the iBookstore Asset Guide in the Deliver Your Content module on iTunes Connect.
What?! epubcheck did not warn you of that, did it? No, it didn’t, because the error reported is actually not a requirement in the EPUB 3 specification. It is, nevertheless, a requirement of the iBooks Store as stated in Apple’s iBooks Asset Guide. That document describes, among other things, stuff that is required by Apple but not necessarily by the EPUB 3 specification nor, therefore, by epubcheck.
Grrr! So now you have to fix that, send the ebook to Apple all over again, and wait more time for your file to be reviewed, hoping this time you did not miss anything else required by Apple but not enforced by epubcheck. There goes another week you will never get back.
The thing is, you could actually have avoided that bummer had you used Apple’s automated online validator before sending the book to their human review team. That validation service provides instant results, and you can validate any book without even registering the book in iTunes Connect (which is what you—or your ebook distributor—do for any book that you want to sell through the iBooks Store). So do yourself a favor and test your books against Apple’s validator before sending them to the iBooks Store.
Using Apple’s ebook validator requires you to use the command line (i.e., the application Terminal in OS X or the Command Prompt in Windows), but fret not, it’s not that difficult. Here is how you do it.