So I wrote an app in swift/xcode and now I'm at the finish line making sure everything is okay. Using Xcode's memory usage indicator, I noticed that my baseline memory usage increases by 200-300(kB) or about .25 (MB) when I play a level and then return to the main scene. So then I went to instruments and looked at persisting data. I'm thinking some SpriteNode has a runBlock creating a strong reference and found instances of textures with a high reference count, probably related to an explosion animation, and some sound sources weren't being released after the SKAction.playSoundFileNamed(...)
was called. Anyways, I tried various fixes, haven't pinpointed whether its sound, explosion animation or something else, but it seems universal, happens after any level, which, along with Instruments, leads me to believe its one of the two (explosion animation or playsoundfile that creates a strong reference cycle). But then part of me feels like I'm chasing a ghost because I really haven't had any performance issues. I'm running in the 20-50 MB range so adding .2 MB per level really doesn't affect anything even if it does it a dozen times (the game is only 9 levels). Although as a perfectionist, it's driving me crazy. So being more practical:
Does apple care about a small memory leak? Does it test for that?
Whether they do or not, consider how this will affect your users. If someone loves your game enough to play it for several hours, will that end up impacting their experience? When is your application unloaded by the OS (i.e. how long will that memory usage persist)? It's obviously better not to leak memory, but "will Apple be unhappy with me" is a less important consideration than "will my users be unhappy with me."