我创建了一个小游戏,我想把它放到应用程序商店,但每当我运行游戏时,它都没有超过最初的应用程序加载屏幕。它曾经工作,但我更新了代码签名标识和包标识符,现在它提出了这个:
这是在CCNode.m文件中。
只是想知道签名身份是否会产生这样的影响。
非常感谢任何帮助或想法。
编辑
好的,所以我发现这就是问题,introLayer.mm文件:
-(id) init{
if( (self=[super init])) {
// ask director for the window size
CGSize size = [[CCDirector sharedDirector] winSize];
CCSprite *background;
if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone ) {
background = [CCSprite spriteWithFile:@"Default.png"];
background.rotation = 90;
} else {
background = [CCSprite spriteWithFile:@"Default-Landscape~ipad.png"];
}
background.position = ccp(size.width/2, size.height/2);
// add the label as a child to this Layer
[self addChild: background];
}
return self;
}
由于某种原因,“Default.png”必须更改为“Default@2x.png”,我之前从未更改此值并且它用于工作,我发现这是一个奇怪的解决方案,它是一个它不正确(即使它使应用程序工作)。
这可能是由于appDelegate文件中的某些内容(我只更改了此文件以防止该应用显示FPS数据)?
有关图像为什么需要添加“@ 2x”的任何信息都会很棒。
答案 0 :(得分:1)
这是代码错误,与证书更改无关。传递给该函数的CCNode
为nil
,即触发NSASSert
。
你需要调查原因:尝试调查调用堆栈以查看调用此函数的位置 - 您可能正在传入未初始化的对象,或者某个对象已经被释放,它本不应该
答案 1 :(得分:0)
正如@davbryn在回答中提到的,这不是一个签名问题。可以犯这个错误的唯一可能性是,你已经在某处做了一些条件编程。我的意思是初始化CCNode对象的代码被#DEBUG
类型的语句包围,因此它被传递为NULL
。