EXC_BAD_ACCESS使用gmaps sdk 1.9.0,Xcode 6.4,在8.3设备上运行

时间:2015-07-13 18:20:11

标签: ios objective-c iphone xcode google-maps-sdk-ios

我有两个使用谷歌地图sdk的项目,它们目前在Appstore中。

要记住的事情:

  • 通过cocoapods安装的Gmaps sdk 1.9.0版
  • Xcode版本6.4
  • 部署目标7.1
  • 设备:带有8.3.0的iPhone 4s

今天我像往常一样在第一个项目中打开Xcode,试图在iPhone上编译和调试,我有时会在应用程序上遇到EXC_BAD_ACCESS (code=1...)崩溃,有时会得到EXC_BAD_ACCESS (code=EXC_ARM_DA_ALING...),没有堆栈跟踪在这里,但始终在main.m上:

return UIApplicationMain(argc, argv, nil, NSStringFromClass([TGPAppDelegate class]));

看到第一个帖子我发现这是错误与谷歌地图有关:

Thread 1

尝试以下方法:

  • 更新pod(没有工作)
  • 使用gmaps sdk页面上的示例代码替换了我的代码(没有工作)*
  • I have read关于自动布局的内容,禁用(没有工作)

奇怪的是我也是:

  • 在带有8.4(DID工作)的iPhone 6中尝试
  • 在带有8.3(DID工作)的iPhone 6中尝试

这两个项目都处于早期测试状态,所以如果有真正的用户有这个问题,我不会担心,但我担心有些用户因此而无法使用这些应用程序。< / p>

我无法在互联网上找到太多信息,我甚至不知道在哪里查看,是否有任何已报告的错误?有其他人有同样的问题?

以下是我使用的示例代码:

-(void)viewDidLoad {
  [super viewDidLoad];

  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.80948
                                                          longitude:5.965699
                                                               zoom:2];

  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];

  self.view = mapView;
}

编辑1:

进行更多测试,发现问题仅在调试时出现(在运行应用程序时附加调试器),如果从iPhone运行应用程序,之后将调试器附加到进程,一切运行正常,我意思是,如果地图试图在附加调试器时进行渲染,那么你将得到exc_bad_access,然后是调试器错误?,我很困惑

编辑2:

这回答in here,谢谢Dave

2 个答案:

答案 0 :(得分:9)

答案不是我的,这回答in here,谢谢Dave,我只是引用他,所以任何人都可以看到答案。

  

我找到了问题的根源并找到了解决方法:

     

问题似乎是由XCode中的OpenGL ES帧捕获引发的;   我猜这个问题是在Apple将混合金属添加到混合中时开始的   XCode 6.4 / iOS 8.3,可能会以某种方式对整个产生负面影响   帧捕获调试系统。

     

解决方法:   编辑:我找到了问题的根源并找到了解决方法:

     

问题似乎是由XCode中的OpenGL ES帧捕获引发的;   我猜这个问题是在Apple将混合金属添加到混合中时开始的   XCode 6.4 / iOS 8.3,可能会以某种方式对整个产生负面影响   帧捕获调试系统。

     

解决方法:

     
      
  1. 在XCode中,转到产品&gt;方案&gt;编辑方案......
  2.   
  3. 选择左侧的“运行”标签。
  4.   
  5. 选择顶部的“选项”子选项卡。
  6.   
  7. 将“GPU Frame Capture”从“Automatically Enabled”或“OpenGL ES”更改为“Metal”或“Disabled”。
  8.         

    这会禁用OpenGL ES帧捕获,这不是很好,但允许   你继续调试你的构建。

         

    不确定此问题是Apple还是Google,但我会发布错误   报告两者。快乐的编码!

答案 1 :(得分:0)

我有完全相同的问题:

iphone 4 - &gt; iOs 7(工作)

xcode模拟器(工作)

iphone 5s - &gt; iOs 8.3(不工作EXC_BAD_ACCESS)

解决方案:我将iphone更新为iOs 8.4,问题消失了,地图正在加载。

希望有所帮助