Большинство, если не все производные от CCNode объекты автоматически освобождаются. Пока вы используете вспомогательные методы, не используйте init.
, например
CCSprite *sprite = [CCSprite spriteWithFrameName:@"blahblah"];
Как только ваш CCLayer удаляет пакетный узел как дочерний, он должен освободить этот объект, если с ним не связаны какие-то вещи, возможно, дети, которые не были удалены (но они должны это делать).
Если его не удалить, когда это произойдет, вы также можете использовать purgecacheddata для очистки текстур.
[[CCDirector sharedDirector] purgeCachedData];
Очистка кэшированных данных также удаляет кэшированные спрайт-кадры, как упоминалось в вопросе выше.