我们正在使用最新版本的Facebook SDK for Unity(v7.2.2)
其中一个可用的API是ActivateApp(FB.ActivateApp)。
是否应调用此方法,特别是在iOS上?
深入了解内幕(SDK是开源的),我在iOS(文件FBUnityInterface.mm)中看到,有以下代码:
- (void)didBecomeActive:(NSNotification *)notification
{
[FBSDKAppEvents activateApp];
}
看起来自动调用ActivateApp(无论我是否手动调用它)。
当我们的应用程序启动/恢复时,我们应该调用FB.ActivateApp吗?这不会导致重复的应用激活报告吗?
答案 0 :(得分:0)
回答我自己的问题:
在iOS上,似乎会在iOS本机代码中自动调用ActivateApp。
调用FB.ActivateApp方法什么都不做(请参阅IOSFacebook.cs中的代码):
public override void ActivateApp(string appId)
{
IOSFacebook.IOSFBSettingsActivateApp(appId);
}
被调用的方法只是空的:
private static void IOSFBSettingsActivateApp(string appId)
{
}
所以,这似乎在iOS上自动处理。
答案 1 :(得分:0)
就在这里。我们目前有一个错误,当使用UnityIAP时,如果用户购买了耗材IAP并在将其标记为完成之前退出应用程序,则他们将无法在应用程序重启时收到购买通知。
最后,它归结为Facebook在iOS中自动记录IAP事件(SDK> = 3.22)。我认为因为它是在Unity之前向事务队列添加一个监听器。
我提到这一点是因为要打开FB的IAP自动记录功能,您需要将其设置为:
developers.facebook.com > App > Settings > Basic > iOS > iOS Only: Log In-App Purchase Events Automatically (Recommended)
然后致电ActivateApp()
。但是,这是在iOS上自动完成的,因此只保留网站上的设置或更改代码。
长话短说,如果你正在使用Unity IAP并且你没有在iOS初创公司获得购买不完整的购买回调,那么要么是因为FB或其他插件添加了一个事务队列监听器(另一位用户报告了AdMob的可能性)。对我们来说是FB。