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

我有2个项目与谷歌地图SDK工作,他们目前在AppStore。

要记住的事情:

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

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

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

看到第一个线程我发现,这是错误是有关谷歌地图:

主题1

试过以下几点:

  • 更新吊舱(没有工作)
  • 用gmaps sdk页面上的示例代码replace我的代码(没有工作)*
  • 我已经看了一些关于汽车布局,禁用(没有工作)

奇怪的是我也是:

  • 在一个iPhone 6与8.4(DID工作)
  • 尝试在一个iPhone的8.3(DID工作)

这两个项目都处于testing阶段,所以我不这样做,如果真的有这个问题,但是我担心有些用户不能使用这个应用程序。

我无法通过互联网find太多的信息,我甚至不知道去哪里寻找,有没有关于这方面的任何已知的错误报告?

这里是我使用的示例代码:

 -(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:

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

编辑2:

这在这里回答,谢谢戴夫

答案不是我的, 在这里回答,谢谢戴夫 ,我只是引用他的话,所以任何人都可以看到答案。

我发现问题的根源,并有一个解决方法:

这个问题似乎是由XCode中的OpenGL ES Frame Capture触发的。 我猜这个问题是在Apple从XCode 6.4 / iOS 8.3添加Metal的时候开始的,可能会对整个帧捕捉debugging系统产生不利影响。

解决方法: 编辑:我find了问题的根源,并有一个解决方法:

这个问题似乎是由XCode中的OpenGL ES Frame Capture触发的。 我猜这个问题是在Apple从XCode 6.4 / iOS 8.3添加Metal的时候开始的,可能会对整个帧捕捉debugging系统产生不利影响。

解决方法:

  1. 在XCode中,转到产品>计划>编辑计划…
  2. select左侧的“运行”选项卡。
  3. select顶部的“选项”子选项卡。
  4. 将“GPU帧捕捉”从“自动启用”或“OpenGL ES”更改为“金属”或“禁用”。

这将禁用OpenGL ES帧捕获,这不是很好,但是允许你继续debugging你的构build。

不知道这个问题是苹果还是谷歌,但我会发布错误报告。 快乐的编码!

与MKMapView同样的问题。 解决scheme是回滚到(并行)Xcode 6.3.2。 http://adcdownload.apple.com/Developer_Tools/Xcode_6.3.2/Xcode_6.3.2.dmg还可以在首选项 – >位置中将命令行工具切换到6.3.2

我有同样的问题:

iphone 4 – > iOs 7(工作)

xcode模拟器(工作)

iphone 5s – > iOs 8.3(不工作EXC_BAD_ACCESS)

解决scheme:我更新了我的iphone到iOs 8.4和问题已经消失,地图正在加载。

希望能帮助到你