我开发了我的第一个SpriteKit游戏,并在SKScence中实现了应用内购买(不是UIViewController)。在我的SKScene中,有锁定的项目,并且都有zPosition< = + 10。当用户触摸任何锁定的项目时,透明背景(SKSpriteNode名为" bgTransparent")出现在zPosition = + 20的所有项目的顶部,然后是另一个名为"连接MSG"的SKSpriteNode。 (带有消息的图像"连接到Apple Store")出现在透明背景的顶部,zPosition = + 30。一旦购买,我将删除锁,bgTransparent和使用" removeFromParent"
连接MSG
bgTransparent =[SKSpriteNode
spriteNodeWithImageNamed:@"Bg_New_Moon_1_2320.png"];
[bgTransparent setScale:.25];
bgTransparent.size = self.frame.size;
bgTransparent.position= CGPointMake(0,0);
bgTransparent.zPosition= +20;
bgTransparent.alpha=0.55;
bgTransparent.anchorPoint = CGPointZero;
bgTransparent.name=@"bgTransparent";
[self addChild:bgTransparent];
connectingMSG =[SKSpriteNode
spriteNodeWithImageNamed:@"connectingTo_1.png"];
[connectingMSG setScale:.36];
connectingMSG.position= CGPointMake(self.size.width/2-60, 80);
connectingMSG.zPosition= +30; // top of bgTransparent
connectingMSG.anchorPoint = CGPointZero;
connectingMSG.name=@"connectingMSG";
[self addChild:connectingMSG];

[connectingMSG removeFromParent];
[bgTransparent removeFromParent];

应用内购买在iOS 8.2中运行良好。我在iPad上使用iOS 8.2和所有模拟器(iOS8.2)进行了测试。我还使用基础SDK iOS 8.2在Xcode 6.2中开发了这个游戏。提交给APPLE并且游戏得到了REJECTED,因为他们在iOS 8.3上测试了它们并发现了一个错误(没有崩溃)。在iOS 8.3中,用户可以购买并完成In App Purchase,出现购买确认,点击OK,模态警报消失,但不再进一步操作,In App Purchase保持锁定状态。
我将我的iPad升级到iOS 8.3,并且在应用程序购买屏幕出现时,该场景正在冻结。例如:即使我在下面的屏幕上点击取消并且在iOS 8.2中消失时也没有删除了连接MSG,bgtransparent
http://i.stack.imgur.com/f3O3K.png
当我登录并购买时也会发生同样的情况。一旦又一次触摸,它就会冻结,没有任何反应。在控制台中,它显示删除connectMSG,bgTransparent和locks后我正在使用的所有NSLog消息。所以我知道代码正在运行直到结束并从中移除.Parent代码i。它只是没有删除SpriteNodes和刷新屏幕。
它在iOS 8.2上仍然可以正常工作,但在iOS 8.3上却没有。我如何解决它?它是否冻结,因为我直接从SKScence(不是UIViewController)购买。
请回复。