EDIT (shorter version after additional testing): I only added:
CGSize winSize = [[CCDirector sharedDirector] winSize];
CCRenderTexture *rt = [CCRenderTexture renderTextureWithWidth:winSize.width height:winSize.height];
to my BulletCache in my game project (that has a GameScene where an instance of BulletCache is added) and now the app does crash whilst trying to load the gamescene instance (before this I had no problems with this crash).
NOTE: I added a breakpoint in the init method of CCRenderTexture and it does seem to run through smoothly, it must be something after the init.
Conversely I tried the same in the init method of the GameScene and it does not crash the App. Likewise if I add it to an empty cocos2d-ios helloworld template project.
Hence in the cocos2d-ios helloworld template I did an additional testing thinking to see if there was a conflict in having a batchnode and a CCRenderTexture instance and added the following at the end of the helloworldlayer.m init method:
CCSpriteFrameCache* frameCache = [CCSpriteFrameCache sharedSpriteFrameCache];
[frameCache addSpriteFramesWithFile:@"art1-hd.plist"];
CCSpriteBatchNode* spriteBatch = [CCSpriteBatchNode batchNodeWithFile:@"art1-hd.png"];
[self addChild:spriteBatch];
CGSize winSize = [[CCDirector sharedDirector] winSize];
CCRenderTexture *rt = [CCRenderTexture renderTextureWithWidth:winSize.width height:winSize.height];
[self addChild:rt];
There was no crash.
I am left with not many glues on how to solve this.
EDIT: Removed original question where I mentioned a pixelperfect collision project where I had found CCRenderTexture