Проблема в том, что вы пытаетесь создать свой рендер-буфер как фрейм-буфер. Если вы перейдете к методу -initWithFrame:
GLView и измените соответствующие строки на
glGenRenderbuffersOES(1, &renderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, renderbuffer);
это просто отлично.
Вы уверены, что это код из книги? Это не соответствует тому, что у меня есть в версии передо мной. Автор правильно настраивает рендер-буфер в тексте книги.