Had the same problem, but finally I've solved it. I left you the link here
SKShapeNode producing crash sometimes on dealloc EXC_BAD_ACCESS
The solution was to call this method before dealloc the shapes (in my case, before I present a new scene)
- (void)cleanUpChildrenAndRemove:(SKNode*)node {
for (SKNode *child in node.children) {
[self cleanUpChildrenAndRemove:child];
}
[node removeFromParent];
}