If you create a new game, using Xcode's Sprite Kit template, and add a SKCropNode instead of a spinning spaceship, it's easy to replicate the problem. Code attached.
On iOS 8, you can add 100 + ships without any issues - 60 fps, even on an old iPad 2.
On iOS 9 you can add about 25 before the fps drops to <30, on a new iPhone 6.
*ahem* Apple devs... HELLO???!!! Are you there? Are you listening? Yes, I've submitted a bug, with screenshots and example programs. Bug number
I realise that some games are affected more than others, but in my case, my live game has dropped from a steady, stable 60 fps on all devices, to an unplayable and crashing 15 fps. I have been working on this game for 2 years and put all my time, money and soul in to it. And now iOS9 has ganked it, and Apple are seemingly IGNORING the issue.
Trying hard to remain calm. Apple, could you please comment
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/ Called when a touch begins */
for (UITouch *touch in touches) {
CGPoint location = [touch locationInNode:self];
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
sprite.xScale = 0.5;
sprite.yScale = 0.5;
sprite.position = location;
SKCropNode *cropNode = [[SKCropNode alloc] init];
SKSpriteNode *mask = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size:CGSizeMake(100, 100)];
mask.position = sprite.position;
[cropNode setMaskNode:mask];
[cropNode addChild:sprite];
[self addChild:cropNode];
}
}