По умолчанию, когда вы добавляете вершинный и фрагментный шейдеры в свой проект, Xcode ошибочно считает их исходными файлами, которые нужно скомпилировать, а не ресурсами, которые нужно объединить.Это приводит к появлению перечисленных выше ошибок.
Удалите файлы Shader.fsh и Shader.vsh из фазы сборки источника проекта цели проекта и убедитесь, что они присутствуют в фазе ресурсов Copy Bundle Resources.
Немного странно, что ваши шейдеры успешно компилируются (во время выполнения, я полагаю) на iPad 2, но не на оригинальном iPad.Хотя у iPad 2 значительно больше шейдерной мощности, чем у iPad 1, не должно быть ничего такого, что могло бы привести к отказу шейдера на одном, когда он работает на другом.Вы можете попытаться выйти из любых сбоев компиляции шейдера, используя следующий код (в процессе компиляции шейдера):
glGetShaderiv(*shader, GL_COMPILE_STATUS, &status);
if (status != GL_TRUE)
{
GLint logLength;
glGetShaderiv(*shader, GL_INFO_LOG_LENGTH, &logLength);
if (logLength > 0)
{
GLchar *log = (GLchar *)malloc(logLength);
glGetShaderInfoLog(*shader, logLength, &logLength, log);
NSLog(@"Shader compile log:\n%s", log);
free(log);
}
}