iOS常见问题
Google视频类开屏广告展示后无法继放游戏内音乐
有用户反馈 在展示Google视频类开屏广告展示后无法播放游戏内音乐。
我们验证后发现: 在unity 2019.4.40上没有发生此问题。 将unity版本更换为2021.3.44f1c1后复现了此情况。 通过尝试我们发现可以通过GoogleSDK以下API解决此情况
#import <GoogleMobileAds/GADMobileAds.h>
GADMobileAds.sharedInstance.audioVideoManager.audioSessionIsApplicationManaged = YES;
App关闭时出现的崩溃堆栈
Crashed: com.apple.main-thread
0 UnityFramework 0x32a2020 GC_is_marked + 243 (mark.c:243)
1 UnityFramework 0x18ed614 push_ephemerons() + 713 (BoehmGC.cpp:713)
2 UnityFramework 0x329ff28 GC_mark_some + 416 (mark.c:416)
3 UnityFramework 0x329f40c GC_stopped_mark + 832 (alloc.c:832)
4 UnityFramework 0x329eea0 GC_try_to_collect_inner + 580 (alloc.c:580)
5 UnityFramework 0x329ab80 GC_init + 1334 (misc.c:1334)
6 UnityFramework 0x329b28c GC_generic_malloc_inner + 175 (malloc.c:175)
7 UnityFramework 0x329af98 GC_gcj_malloc + 147 (gcj_mlc.c:147)
8 UnityFramework 0x191d140 il2cpp::vm::Object::NewAllocSpecific(Il2CppClass*) + 81 (Object.cpp:81)
9 UnityFramework 0x1922f4c il2cpp::vm::Thread::Attach(Il2CppDomain*) + 263 (Object.cpp:263)
10 UnityFramework 0x1924650 il2cpp::vm::ScopedThreadAttacher::ScopedThreadAttacher() + 15 (ScopedThreadAttacher.cpp:15)
11 RummyParty 0x18473b4 ReversePInvokeWrapper.TradplusInterstitialiOS_InterstitialClosedCallback (TradplusSDK.cpp)
12 UnityFramework 0x18cb068 -[TPUInterstitial tpInterstitialAdDismissed:] + 165 (TPUInterstitial.m:165)
13 UnityFramework 0x249c070 __35-[TradPlusAdInterstitial closeAct:]_block_invoke + 718 (TradPlusAdInterstitial.m:718)
14 UnityFramework 0x249bf90 -[TradPlusAdInterstitial closeAct:] + 718 (TradPlusAdInterstitial.m:718)
15 UnityFramework 0x249b01c -[TradPlusAdInterstitial closeEvent:] + 637 (TradPlusAdInterstitial.m:637)
16 UnityFramework 0x249ae6c __53-[TradPlusAdInterstitial setShowCallbackWithAdapter:]_block_invoke_4 + 613 (TradPlusAdInterstitial.m:613)
17 UnityFramework 0x24a279c -[TradPlusBaseAdapter AdClose] + 270 (TradPlusBaseAdapter.m:270)
18 UnityFramework 0x1f339a0 GAD_GADInterstitialAd_arm64_11_6_0 + 2864
Crashed: com.apple.main-thread
0 UnityFramework 0x32a2020 GC_is_marked + 243 (mark.c:243)
1 UnityFramework 0x18ed614 push_ephemerons() + 713 (BoehmGC.cpp:713)
2 UnityFramework 0x329ff28 GC_mark_some + 416 (mark.c:416)
3 UnityFramework 0x329f40c GC_stopped_mark + 832 (alloc.c:832)
4 UnityFramework 0x329eea0 GC_try_to_collect_inner + 580 (alloc.c:580)
5 UnityFramework 0x329ab80 GC_init + 1334 (misc.c:1334)
6 UnityFramework 0x329b28c GC_generic_malloc_inner + 175 (malloc.c:175)
7 UnityFramework 0x329af98 GC_gcj_malloc + 147 (gcj_mlc.c:147)
8 UnityFramework 0x191d140 il2cpp::vm::Object::NewAllocSpecific(Il2CppClass*) + 81 (Object.cpp:81)
9 UnityFramework 0x1922f4c il2cpp::vm::Thread::Attach(Il2CppDomain*) + 263 (Object.cpp:263)
10 UnityFramework 0x1924650 il2cpp::vm::ScopedThreadAttacher::ScopedThreadAttacher() + 15 (ScopedThreadAttacher.cpp:15)
11 RummyParty 0x184fccc ReversePInvokeWrapper.TradplusRewardVideoiOS_RewardVideoClosedCallback (TradplusSDK.cpp)
12 UnityFramework 0x18c75f8 -[TPURewardVideo tpRewardedAdDismissed:] + 171 (TPURewardVideo.m:171)
13 UnityFramework 0x248a42c __31-[TradPlusAdRewarded closeAct:]_block_invoke + 680 (TradPlusAdRewarded.m:680)
14 UnityFramework 0x248a1ec -[TradPlusAdRewarded closeAct:] + 680 (TradPlusAdRewarded.m:680)
15 UnityFramework 0x24889b8 __49-[TradPlusAdRewarded setShowCallbackWithAdapter:]_block_invoke_4 + 498 (TradPlusAdRewarded.m:498)
16 UnityFramework 0x24a279c -[TradPlusBaseAdapter AdClose] + 270 (TradPlusBaseAdapter.m:270)
17 UnityFramework 0x1f467a8 GAD_GADRewardedAd_arm64_11_6_0 + 2572
18 UnityFramework 0x1ebd7c0 GAD_GADFullScreenAd_arm64_11_6_0 + 6532
19 UnityFramework 0x1ebdb74 GAD_GADFullScreenAd_arm64_11_6_
上面两个崩溃堆栈,已查明是插屏,激励广告全屏播放未关闭时,用户主动后台杀死app时发生的。
可在 unity 触发 OnApplicationQuit 生命周期时移除我们广告的回调,这样就可以解决以上问题了。
private void OnApplicationQuit()
{
TradplusRewardVideo.Instance().ClearCallback();
TradplusInterstitial.Instance().ClearCallback();
}
升级到Xcode15后加载unityAds时崩溃
崩溃堆栈如下:
解决方案
- 使用unityAds v4.9.2及以上版本(unityAds在v4.9.2版本中修复了此问题) 2.使用Xcode15的话需要把App对最低版本修改为12.0或以上版本 3.使用Xcode14进行编译打包
加载错误 600009 "waterfall bean is null"
-
检查 TradPlus后台 广告位的中介组中是否已配置了广告源
-
如果 TradPlus后台 广告位的中介组中只配置了海外bidding的广告源时,请检查手机ip是否在海外。手机处于国内IP时是无法获取到海外bidding配置的。
-
测试广告时,建议在 TradPlusSDK open初始化完成后再进行广告加载操作。
-
如果您的广告加载是紧接着open初始化调用的情况下(未等待open初始化完成), v7.1.0+版本可以通过API忽略SDK隐私设置强制获取IDFA。从而方便的中介组分组及测试模式的idfa设备匹配。
// 通过设置此接口可以强制获取IDFA(v7.1.0+新增)
// 注:测试完成后一定要移除或关闭,开启时会忽略所有隐私规则获取IDFA
[TradPlus forceGetIDFA:YES];
腾讯广告播放后导致游戏或应用背景音乐消失
-
首次开发者反馈出现在腾讯广告SDK v4.13.51 版本中。
-
由于腾讯广告SDK默认使用其内部的AVAudioSession,可能和您游戏或应用的音频设置产生冲突。
-
可按照腾讯官方API说明进行设置
来源:https://developers.adnet.qq.com/doc/ios/guide
在播放音频时是否使用SDK内部对AVAudioSession设置的category及options,默认使用,若不使用,SDK内部不做任何处理,由调用方在播放视频时自行设置;
SDK设置的category为AVAudioSessionCategoryAmbient,options为AVAudioSessionCategoryOptionDuckOthers
#import "GDTSDKConfig.h"
+ (void)enableDefaultAudioSessionSetting:(BOOL)enabled;