2013-12-23 89 views
0

我已經創建了一個小遊戲,但我每次運行遊戲時都不會超過最初的應用加載屏幕。它用於工作,但我更新的代碼簽名身份和捆綁標識符,現在這個出現:我有更改證書後遊戲無法正常工作

enter image description here

這是在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」 不得不改爲「默認@ 2x.png「出於某種原因,我以前從未更改過此值,並且它用於工作,我發現這是一個奇怪的解決方案,而且它不正確(即使它使應用程序正常工作)。

這可能是由於appDelegate文件中的某些內容(我只更改此文件以防止應用程序顯示FPS數據)?

任何有關圖像爲什麼需要添加「@ 2x」的信息都會很棒。

+1

更新代碼sigining標識和包標識符不會影響您的源代碼。它清楚地表明你的參數孩子是零,所以它應該是你的一些代碼更改。 – ldindu

+0

你可能已經升級到新的XCode ..這可能是原因。 – samfisher

回答

1

這是代碼錯誤,不會與證書更改相關。被傳入該函數的CCNodenil,並且正在觸發NSASSert

您需要調查此原因:嘗試調查調用堆棧以查看從何處調用此函數 - 您可能傳入的是未初始化的對象,或者某個對象已被釋放,但本應該不是這樣的:

+0

我指出這是答案,因爲它指導我解決這個問題。非常感謝@davbryn。實際的問題似乎是需要重新命名爲「[email protected]」的「Default.png」圖片,但我不確定爲什麼。 – Maccle415

+0

很高興您對它進行分類! @ 2x(我相信)加載在視網膜設備上,應該是高清資源,所以我猜你是在模擬器中運行你的代碼,然後部署到視網膜設備? – davbryn

+0

我以爲是這樣,但我一直在設備和模擬器上運行 – Maccle415

0

正如@davbryn在他的回答中提到的,這不是一個簽名問題。唯一可能導致這個bug的是,你已經在某處做了一些條件編程。我的意思是初始化CCNode對象的代碼被#DEBUG類型的語句包圍,因此它被傳遞爲NULL