ios - EXC_BAD_ACCESS 与 GCM 3.0

标签 ios objective-c google-cloud-messaging cocos2d-x cocos2d-x-3.0

我正在尝试将 GCM v3 集成到 cocos2d-x v3.6 项目中,经过几天使用 CocoaPods 和 Xcode 的工作后,我终于能够构建该应用程序。但是,当部署在设备上进行测试时,它会在调用 [[GGLInstanceID sharedInstance] tokenWithAuthorizedEntity:_gcmSenderID scope:kGGLInstanceIDScopeGCM options:_registrationOptions handler:_registrationHandler] 时崩溃,并出现错误 EXC_BAD_ACCESS。给了什么?

截图:http://i.imgur.com/s0HnxTp.png

我的配置如下:

daffodilistic$ pod --version 0.39.0.beta.4 daffodilistic$ cat Podfile platform :ios, '8.1' source 'https://github.com/CocoaPods/Specs.git' target 'project-redacted iOS' do pod 'Google/CloudMessaging' end target 'project-redacted Mac' do end

最佳答案

我成功地调试并解决了异常 - 显然,它是由 @property(nonatomic, retain) void (^registrationHandler) 根据 Google's sample GCM v3 code for iOS 声明的 block 属性.至于是 Xcode、iOS 还是 cocos2d-x 导致 block 声明被取消引用/解除分配,我不确定。

解决方案是移动 (^registrationHandler) block declaration来自

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

有用但不是很重要的相关 SO 链接:unable to register (com.google.iid error 1005.)

关于ios - EXC_BAD_ACCESS 与 GCM 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32493935/

相关文章:

ios - 为什么我在 Swift playground 中进行简单的加法操作时会出错?

iphone - 对实例方法使用点符号

ios - 合并两个 sqlite3 查询

iphone - 如何缩短 Cocos2D 粒子生命周期?

android - 使用 GCM 时如何堆叠或分组注册 ID?

ios - 为什么自动布局会出现此布局问题

iphone - 如何在Objective-C中将键值对添加到plist文件

ios - 无法从 iPhone 文档目录位置中保存的文件重新加载 UIImage

android - 来自现有 GCM 项目的 GCM API key ?

android - 为什么在 Android 6 上未授予 GCM 权限?