在 Xcode 6 中验证期间 cocos2d 中的非公共选择器 heightForRow:AtIndex

Posted

技术标签:

【中文标题】在 Xcode 6 中验证期间 cocos2d 中的非公共选择器 heightForRow:AtIndex【英文标题】:non public selector heightForRow:AtIndex in cocos2d during validation in Xcode 6 【发布时间】:2014-11-30 12:32:13 【问题描述】:

最近我已将我的 Xcode 从 v 5.1.1 更新到 6.0.1。在验证我当前的 Cocos2d v3.1 项目期间,iTunes 商店向我显示了警告

iTunes Store operation failed.
The app references non-public selectors in Payload/<AppName>.app/<AppName>:tableView:heightForRowAtIndex:

有没有办法解决这个验证警告?

【问题讨论】:

github.com/cocos2d/cocos2d-swift/issues/1012 提出的 FWIW 问题 【参考方案1】:

哦,这是由于 Cocos2d 3.1 库中的 CCTableView 类。在CCTableView.h 中声明的CCTableViewDataSource 中有一个方法名称- (float) tableView:(CCTableView*)tableView heightForRowAtIndex:(NSUInteger) index;。可能这个方法也在其他一些类中声明,CCTableView.m 通过调用[dataSource respondsToSelector:@selector(tableView:heightForRowAtIndex:)]; 来调用这个方法。

我通过在CCTableViewDataSource 中将其声明为-(float) ccTableView:(CCTableView*)tableView heightForRowAtIndex:(NSUInteger) index; 来更改方法名称,并通过将[dataSource respondsToSelector:@selector(tableView:heightForRowAtIndex:)]; 替换为[dataSource respondsToSelector:@selector(ccTableView:heightForRowAtIndex:)]; 并将[_dataSource tableView:self heightForRowAtIndex:i]; 替换为[_dataSource ccTableView:self heightForRowAtIndex:i]; 来更改CCTableView.m 文件中的相应调用。

【讨论】:

酷我也会这样做。让我们希望 Cocos2D 团队也修复它......虽然看起来 ITC 的某些脚本确实有问题...... 只是重命名讨论的方法解决了我的问题,iTunes connect 成功验证了我的应用程序。您的应用程序的当前状态是什么?它是否面临来自 iTunes Connect 的相同有效性警告? 是的,这是一个警告/问题,源于缺少命名空间。我重命名了员工,没有发生名称冲突。这是另一个解释这一点的问题/答案:***.com/questions/19378484/… 如果我保持这个警告不变,苹果会拒绝应用程序吗? @LocPham 我之前已经提交了带有验证警告的 ipa,Apple 并没有拒绝它。但始终建议解决每个验证警告。

以上是关于在 Xcode 6 中验证期间 cocos2d 中的非公共选择器 heightForRow:AtIndex的主要内容,如果未能解决你的问题,请参考以下文章

iOS 6 Game Center 在横向模式 cocos2d 中的身份验证崩溃

求大神指导,如何在Mac上安装cocos2d—x,就是可以在Xcode中用的

vbscript 检测瘦客户端验证期间是否需要OLL。在6.1.0.10之前的KTM环境中是必需的

Xcode 4 和 cocos2D 1.0.0 beta 未分类错误和 Info.plist 不存在

Xcode7 真机免证书调试Cocos2D游戏

如何在 cocos2D 应用程序中拍照(iOS 6)