Вы не говорите, используете ли вы OpenGL ES 2.0 для этого, но если вы это сделаете, возможно, они протестировали ваше приложение на iPhone 3G, в котором отсутствует поддержка 2.0. Вы можете отфильтровать эти неподдерживаемые устройства, добавив ключ opengles-2
к вашему UIRequiredDeviceCapabilities
в вашем Info.plist.
Вторая возможность заключается в том, что вы пытаетесь отобразить изображение с вашей камеры, которое превышает максимальный размер текстуры OpenGL ES устройства тестера. Вы можете проверить этот размер , но на устройствах старше iPad 2 этот максимальный размер текстуры составляет 2048x2048. На iPad 2, новом Retina iPad и iPhone 4S размер этой текстуры составляет 4096x4096. IPhone 4 может захватывать изображения шириной более 2048 пикселей, что может объяснить, почему изображение с вашей камеры работает на вашем iPhone 4S, но показывает черное изображение на устаревшем оборудовании.
Существует также удаленная возможность того, что вы используете расширение OpenGL ES, которого нет на старом оборудовании, но я не думаю, что какое-либо из недавних дополнений в чипах A5 было бы полезно для обработки изображений. Я думаю, что новое оборудование также поддерживает большее количество текстурных блоков, атрибутов и вариаций, но мне нужно проверить это.
Именно поэтому я всегда стараюсь тестировать на самом старом оборудовании, которое обладает минимальными возможностями, необходимыми для моих приложений, потому что существуют тонкие различия в способах обработки графическими процессорами различных устройств.