iOS常见问题
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;
IronSource加载错误
IronSource SDK不支持多个appID进行重复初始化,只有首次初始化的appID才是有效的。
- 当您使用 appID_A 进行IronSource 初始化后。
- 然后使用 appID_B 初始化并广告加载时,IronSource会出现加载失败情况。
- errCode: 527, errMsg: The requested instance does not exist
快手相关设置
-
快手的SDK 不支持 bitcode 需要关闭 bitcode
-
快手自渲染原生广告没有无法点击。 需要实现r
- (UIViewController *)viewControllerForPresentingModalView
回调并返回非空UIViewControlle
framework 签名设置
- 手动接入时,部分SDK需要设置为 需要在General项下拉找到对应的库,设置 Embed&Sign
平台 | framework |
---|---|
快手 | KSAdSDK.framework |
SuperAwesome | Alamofire.framework Moya.framework SuperAwesome.framework SwiftyXMLParser.framework |
MoPub | MoPubSDK.framework OMSDK_Mopub.framework |
Smaato | OMSDK_Smaato.framework |
Ogury | OMSDK_Ogury.framework |
Meta | FBAudienceNetwork.framework(v6.10.0开始) |
Verve | OMSDK_Pubnativenet.framework HyBid.framework |
Unity项目 百度广告无法显示 按钮等元素
如果将 百度的SDK中的 baidumobadsdk.bundle 加入UnityFramework.framework中进行打包。百度将无法找到其资源包,会导致其广告按钮等元素无法显示。
可以 手动将 baidumobadsdk.bundle 添加到Unity主项目中进行打包来解决此问题
快手SDK 使用pod添加后 运行时无法找到SDK
由于快手SDK是动态库 如果引用在 target 'UnityFramework' 是会发生此情况的。
开发者需要在 target 'Unity-iPhone'中引用 快手SDK
或 通过 PlayerServicesResolver来管理pod配置。 参考: 如何在unity项目中通过pod来配置SDK