解释这种情况:当我通过XCode(可以说是调试模式)安装时,我的OpenGL View Controller工作正常,但是当通过In House Distribution安装时崩溃(HockeyApp用于此)。
一切正常,没有任何错误通过XCode但在第61行中断: https://gist.github.com/jonasbark/561e7e66671b041f0107
uniforms[UNIFORM_MVP_MATRIX] = glGetUniformLocation(program, "mvp_matrix");
我真的不知道为什么。我甚至试图将着色器文件硬编码为NSString,但没有运气。对我来说,为什么使用内部分发不起作用是没有意义的......
这是例外原因:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000
统一字段变量的引入如下:
enum {
UNIFORM_MVP_MATRIX,
UNIFORM_TEXTURE,
NUM_UNIFORMS
};
GLint uniforms[NUM_UNIFORMS];
以防万一有人想看到源代码:它基于http://www.endodigital.com/opengl-es-2-0-on-the-iphone/ - > EDCubeDemo_AppendixA.zip
答案 0 :(得分:0)
好的......终于解决了这个问题。
将GLint uniforms[NUM_UNIFORMS];
替换为GLint uniforms[2];
并且有效。不知道为什么它会在Release版本上失败,必须是某种编译器优化......