赞
踩
目录
1.android studio在build过程中依赖项下载慢,**后也慢的问题
2.解决unity接入ironsource sdk中的chartboost广告源报错:NETWORK_FAILURE没有广告的问题
4.xcode工程报错".entitlements"找不到的解决办法记录
5.unity导出xcode工程pods失败的解决方案和pods install慢的问题
7.unity接入ironsource导出xcode后,两个同名文件造成冲突
9.TopOn与红包激励卡冲突,激励卡展示函数走不完就会发生程序崩溃闪退
11.unity中使用android resolver出现resolve秒succeeded的情况,而且没有自动导入任何jar、aar依赖、并自动删除了一些已经导入的jar、aar
12.unity中使用android resolver出现resolve后mainTemplate.gradle被截断
13.xcode接完firebase推送后,icon上的消息数量打开app 不消失
15.遇到appstore回复不再支持UIWebView而被秒拒的问题
18.unity发布到ios后iphone x、iphone 11等刘海屏,和iphone14pro、14pm灵动岛适配问题
20.Umeng打点需要等Umeng初始化完成之后才可以打点,否则程序在真机上(目前只试过ios)会崩溃闪退。
22.Firebase接入A/B Test,build as project打包过程中报错Failed to resolve:xxxxxxx
24.AF从V4版本升级到V5、V6时出现和is的vungle有冲突的问题
27.Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms
28.解决AndroidStudio下载gradle慢的问题
30.unity项目在ios中播放广告时的广告声音和游戏声音重叠的问题
32.unity接入max广告平台后真机运行时调用广告报错(插屏、激励视频)
ALAdServerAd、adUnitIdentifier、ALAd等错误时
33.firebase_crashlytics缺失dSYM unity ios
34.Unity3d使用Spine SkeletonGraphic(UGUI)时需要注意的坑,仅安卓真机会出问题!
35.android studio编译报错,关键词mtg、mintegral
36.使用ParticleEffectForUGUI插件后,部分特效出现被剔除的bug
39.接入maxsdk和fb广告源后,ios在运行时出现FBAdConfigManager、ALSdk、AppLovinSdk ERROR的报错、崩溃,并且不能调用广告
40.max调试器(MAX Mediation Debugger)中的Ad Review Version报错
43.对接max sdk后,打包ios进入max调试器测试每个广告源,提示需要重启,第二次启动后进入max调试器后app崩溃,并有如下log:
44.android studio打包过程中报错,报错内容:
45.打包到and运行后报错,提示StringEnumConverter相关报错(可能ios也有)
47.在xcode中第一次build成功,第二次就会提示如下错误信息,并且打包失败
48.在unity接入max sdk后,引入最新的MTG(之前没问题,升级后就不行了)广告元后,as工程打包报错的bug
49.unity build为xcode工程后,在打包ipa的签名阶段出现错误
50、windows系统下,unity激活总是无法成功时,试试以下方法(尤其是曾经破解过unity的电脑)。
打开**,然后在android studio的File->settings->Http Proxy中做如下设置,选择HTTP,Host name为127.0.0.1,Port number设置为**的HTTP/HTTPS 端口号
android studio的设置

重新build一般即可解决
如果还是下载很慢,可以再在android studio项目中的gradle.properties中写入(如图),注意,把“1090”修改为你的**的SOCKS5监听端口号,再重新build基本可以解决问题
org.gradle.jvmargs=-Xmx4096M -Dfile.encoding=UTF-8 -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1090

报错截图:

解决方案:
需要在gradle里增加四句话(is没有提供,chartboost技术说的)
IS的Chartboost广告源报错:NETWORK_FAILURE 时尝试在gradle增加如下四句:
- implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
- implementation 'com.google.android.gms:play-services-base:17.1.0'
- implementation 'androidx.appcompat:appcompat:1.1.0'
- implementation 'androidx.legacy:legacy-support-v4:1.0.0'
【Unity游戏开发】Android6.0以上的动态权限申请问题 - 马三小伙儿 - 博客园


解决方案:在别的项目里面copy过这个文件到本项目的根目录即可,这个文件是记录工程中使用那些功能的文件,出现这个问题可能是因为此文件损坏或者丢失了
- 1.pods使用方式:终端cd到工程根目录,执行pod install
- 2.pods install太慢的解决方案:
- https://www.jianshu.com/p/9e7cb7c722b2
- https://www.cnblogs.com/agang-php/p/10618299.html
- https://blog.csdn.net/yyws2039725/article/details/90675347
- https://www.jianshu.com/p/ef35a1eef95d
-
- 比较有用的一句话:终端设置走**,端口号用**的设置里面的端口号
- 方法一:
- 在终端执行export all_proxy=socks5://127.0.0.1:{socks5监听端口号}
- 如:export all_proxy=socks5://127.0.0.1:1090
- 方法二:
- 在终端执行export http_proxy=127.0.0.1:41091 https_proxy=127.0.0.1:41091
- 注:41091 是本地HTTP/HTTPS监听端口, 根据**设置里面端口数进行设置即可,HTTP/HTTPS默认端口41091
-
- 3.如果还失败进行更换网络多次尝试(其他同事遇到过这个问题,多次尝试后成功)

第一个错误尝试重启xcode
第二个错误是没有把真机添加成测试设备


错误原因是因为pod文件重复下载相同文件,is的Facebook模块新版为自动在pod里面添加FBaudienceNetwor,建议使用老版本。
Step1: 新建“Payload”文件夹,注意名字要一字不差;
Step2: 将你的.app包放到Payload中,注意app的名字不做任何更改,就用xcode生成的app名称;(在dev环境下真机调试后会在xcode的products文件夹下自动生成.app)

Step3: 在Payload文件夹上右键压缩成zip,然后将生成的.zip文件后缀改成.ipa即可上传

解决方案:避免在广告结束时紧接着调用激励卡展示逻辑;可是使用协程适当延迟时间(我延迟了0.5f), 避免发生崩溃。



解决方案:请检查是否使用了unity的mainTemplate.gradle,如果启用了,请进入android resolver -> settings,关闭patch mainTemplate.gradle选项

尝试把mainTemplate.gradle文件中的所有注释删掉,如:
//Android Resolver Exclusions Start
全局搜applicationDidBecomeActive
这个方法,这是声明周期中的触发活跃方法
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
这句话给小红点设置数量

将下列代码粘贴到build.gradle中的android函数里
- signingConfigs {
- debug {
- storeFile file('sunshine.jks')
- storePassword "123456"
- keyAlias "sunshine"
- keyPassword "123456"
- v1SigningEnabled true
- v2SigningEnabled true
- }
- release {
- storeFile file('sunshine.jks')
- storePassword "123456"
- keyAlias "sunshine"
- keyPassword "123456"
- v1SigningEnabled true
- v2SigningEnabled true
- }

- 然后点右上角的红色提示编译
- 然后点击右边的signingreport就能获取到sha1值了

或者点下方Terminal/终端/cmd
获取SHA1
第一步、输入命令:keytool -v -list -keystore keystore文件路径(相对路径)
第二步、输入Keystore密码,回车后即可看得到
如果使用的是unity2018版本,需要更新国外补丁版本2018.4.10f1或更高,如果2019等其他版本,请注意补丁内容,更新到fixed UIWebView补丁之后的版本(国内unity可能被区别对待了,建议使用国外版本unity)

附:如果更新后打包ios出现了磁盘权限问题,并确定了unity程序有完全的磁盘访问权限

解决方案:
1.转到编辑器的安装位置。
/Applications/Unity/PlaybackEngines/iOSSupport/Trampoline/build/SharedPrecompiledHeaders
2.右键单击“ SharedPrecompiledHeaders”>“显示简介”>共享和权限
3.将“所有人”的权限 更改为“读写”
4.现在可以为以下项目构建项目iOS平台
出现特点
在工程项目内无问题,但是打包安卓以后出现安卓与服务器请求失败,无返回code,抓包无数据请求。
解决方法和原因
因为Android 28以后不允许直接发送明
Android本机API确实允许HTTP,至少可以使用curl库。但是,Java API(这是UnityWebRequest当前在幕后使用的)不允许HTTP。
解决规避方法用其中一种即可
1、需要在清单文件中更新此行android:usesCleartextTraffic =“ true”。
2、通过将目标API级别更改为27,可以绕过此问题。
3、切换到HTTPS
出现特点:

解决方法
https://github.com/mxcl/PromiseKit/issues/1059
根据这个网址的一个人的回答

ios / YourAppName开放。在Xcode中xcodeproj
在左侧的项目导航器中右键单击您的应用程序名称,然后单击New File…
为项目创建一个空的Swift文件(在添加时确保选中了你的应用名称目标)
当Xcode要求时,按下创建桥接头,然后不要删除Swift文件。重新运行您的构建。
这应该可以解决问题
解决方案:上面留黑边,强制画面下拉
在生成的xcode项目中找到UnityAppController.mm文件
在上面增加导入
#import <sys/utsname.h>
在文件内找到函数
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
修改如下:
- //[注意一定要注释掉这一句]
- //_window = [[UIWindow alloc] initWithFrame: [UIScreen mainScreen].bounds];
- //增加iphone异形屏的屏幕适配
- CGRect winSize = [UIScreen mainScreen].bounds;
- //刘海屏统一修改
- if (winSize.size.height / winSize.size.width > 2)
- {
- winSize.size.height -= 32;
- winSize.origin.y = 32;
- }
- //灵动岛手机 14p、14pm
- struct utsname systemInfo;
- uname(&systemInfo);
- NSString * phoneType = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding];
- if ([phoneType isEqualToString:@"iPhone15,2"] || [phoneType isEqualToString:@"iPhone15,3"]){
- winSize.size.height -= 32*2;
- winSize.origin.y = 32*2;
- }
- _window = [[UIWindow alloc] initWithFrame: winSize];
- //增加iphone异形屏的屏幕适配 over

或者把下面两个文件放在Assets/Editor下,在build xcode工程的过程中会自动修改生成的UnityAppController.mm文件,追加上面的代码
注意:必须经过真机测试,自动化可能出现问题
下载地址:
问题:在接入is sdk后发生应用崩溃,log提示某些东西(如明确哪个广告元的相关log)丢失
解决方案:可考虑尝试重新对接is,包括build的xcode、as工程都删除后重新build
崩溃截图:
Ios

ios时,在podefile里修改
为10.0 然后 在终端pod update 更新Sdk adapter.
android

报错截图

解决方案:
重新打包并关闭**或切换**节点后重新尝试提交,我是在重新打包并关闭**后提交成功
Firebase不支持unity的gradle template模式,as打包出错,错误内容:

解决方案:

修改为

原因:
EDM试图通过Packages文件夹下的.srcaar生成.aar,但unity不能让外部修改这些文件夹,所有android resolver无法在packages中生成.aar文件,会生成在Assets/GeneratedLocalRepo文件夹下,并且会在mainTemplate.gradle中生成错误本地路径,实际上指定到Assets/GeneratedLocalRepo文件夹下即可解决
注意:
如果Assets/GeneratedLocalRepo文件夹中没有生成的aar文件,可通过EDM的Android Force Resolver重新编译查看是否生成,如果还没有生成,看log解决(一般在黄色警告中)此问题~
如我遇到的这个问题:
提示xxxx.xml文件中的路径不存在(.srcaar相关文件的路径错误),手动改成正确的,重新Resolover即可解决!
报错内容如下:

解决方案:
使用安装谷歌框架的手机+**测试是否正常

解决方案:

- tools:replace="android:fullBackupContent"
- android:fullBackupContent="true"

No visible @interface for 'AppsFlyerLib' declares the selector 'logLocationEvent:latitude:'
报错截图:

解决方案:
这是AF6.0.1版本自己的bug,更新sdk到最新版即可解决
使用chrome浏览器,安装一个插件【Github 加速器】

下载地址 (不用**)安装很简单,自己搜索。关键字【chrome开发者模式安装插件】
装好后,打开 github 页面, UI如下

这里多了几个通道, 第一个通道在内网下载时被公司拦截了,提示如下:

但第二个没问题, 速度飞快,公司可以上3M的速度,怒赞!
如果确定untiy的sdk配置正确,可尝试
解決方法:下載 tools_r25.2.3-windows.zip(連結代碼:android-tools),解壓縮後把 Android_SDK 目錄中的 tools 資料夾整個取代掉即可。
重启电脑
当我们升级完成AS后,相应的gradle也会需要升级,使用新版本的AS打开项目时,项目下的gradle/wrapper/gradle-wrapper.properties文件里面的gradle版本会更新成当前AS所匹配的gradle版本。此时AS就一直在刷新项目,其实是在进行蜗牛般的速度下载着gradle。
以我现在的AS为例,我把AS升级到2.3后,相应的gradle版本是gradle-2.14.1,可以通过查看文件gradle-wrapper.properties得知你所需的gradle版本。
1.使用下载工具下载gradle
gradle的官网下载地址是 https://gradle.org/releases,打开网址后下载complete版本的gradle。复制下载链接到迅雷下载即可。
2.替换本地gradle
完全关闭AS,包括正在下载gradle的进程也需要关闭。进入到本地的gradle存储目录,我的MAC是/Users/Seven/.gradle/wrapper/dists,linux系统的话应该是在个人用户目录下。
把gradle-2.14.1-all.zip文件复制到 gradle-2.14.1-all/8bnwg5hd3w55iofp58khbp6yv 目录下,同时把该目录下的其他文件删除掉。这个8bnwg5hd3w55iofp58khbp6yv是由AS自动生成的,不能更改。
重新打开AS,会自动解压并生成文件。至此gradle更新完成。

解决方案:

删除图中的选中的kv 这里是设备架构 4s以后都是armv7 。
在广告打开的回调里调用
- Time.timeScale = 0;//暂停游戏
- AudioListener.pause = true;//停止所有音频
广告关闭的回调里调用
- Time.timeScale = 1;//恢复游戏
- AudioListener.pause = false;//恢复所有音频
其他同事出现此问题后的解决方案如下:
在unity中的build settings的Other Settings中的Mute Other Audio Sources选项不要勾选(默认未勾选,当时出现问题的项目并没有勾选,但是还是有问题)
清除缓存, clean project, 删build文件夹都没有解决问题.
删除掉之前编译生成的apk就可以了
转载:Entry name 'kotlin/collections/MapWithDefault.kotlin_metadata' collided_MAIMIHO的博客-CSDN博客
上面我测试没用
我的解决方案:
在build.gradle中注释掉下面代码就build成功了
// implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10'
报错截图:


解决方案一:

删除podfile文件中的最后三行
- target 'Unity-iPhone' do
- end
- use_frameworks!
重新pod install后打包即可解决
解决方案二:


unity中的这两个不要勾选,重新build即可~
Firebase后台提示缺失dSYM文件的截图

解决方案:
一、找dSYM:
方法一:
打开xcode->window->organizer->选择你的版本包archives->show in finder->显示包内容->里面即可看到.dSYM文件
方法二:
打开终端,运行以下命令行
在您的机器上显示所有 dSYM 的 UUID
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

搜索缺失的UUID,那条的后面即是dSYM文件的路径
为了方便操作,可以复制dSYM文件到桌面,修改文件名为1.dSYM(以下案例使用1.dSYM代替),注意名字中不要包含空格等特殊符号,否则接下来的命令行操作会出现问题
二、验证缺失的UUID是否包含在找到的dSYM中
1.打开终端,然后使用以下命令行
dwarfdump -u [dSYM文件路径]/1.dSYM

即可看到此dSYM中包含的UUID
三.上传dSYM文件到Firebase
1.打开终端,然后使用以下命令行
注意:把[项目 路径]、[GoogleServicePlist.plist 路径]和[DSYMs文件路径]替换为你的正确的路径:
[项目 路径]/Pods/FirebaseCrashlytics/upload-symbols -gsp [GoogleServicePlist.plist 路径]/GoogleService-Info.plist -p ios [DSYMs文件路径]/1.dSYM
2.回车
上传成功后提示
Successfully uploaded Crashlytics symbols
回到Firebase后台刷新查看是否正常
参考资料:《使用 Firebase Crashlytics SDK 获取经过去混淆处理的崩溃报告》
挂载Skeleton Graphic的物体默认为未激活,然后操作Skeleton Graphic组件时,在安卓真机下会报Null!!!(安卓真机会这样,编辑器情况下不会出现问题!别的情况暂时未测试)
在操作之前尽量使用 gameObject.activeInHierarchy 判定一下是否在激活状态,再进行操作!!!
报错内容:Unknown host dl-maven-android.mintegral.com'. You may need to adjust the proxy settings in Gradle.

多次尝试多次尝试多次尝试编译即可
1.可配置android studio中的proxy到****尝试编译


2.多次切换****节点编译尝试

解决方案:Camera中的MASS改为Off,或者ProjectSettings中的Quality中的Anti Aliasing设置为Disabled,即可解决
解决网络问题
新电脑安装 cocoapods 遇到 You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Version。查了很多资料
都是以前旧的解决方法。就算执行 sudo gem install -n /usr/local/bin cocoapo 也不会起效。mac自带的ruby目录是不允许修改的,即使是root权限。
解决方法,自行安装ruby,然后将ruby的bin添加到环境配置
1、brew install ruby
2、echo'export PATH="/usr/local/opt/ruby/bin:$PATH"'>> ~/.bash_profile。另外,安装后ruby会提醒配置到.zshrc(对osx无效的)
3、gem install cocoapods。去他的sudo,爱咋咋整。
*** Terminating app due to uncaught exception 'FBFinalClassViolationException', reason: 'FBAdconfigManager is a final class and cannot be subclassed. FBAdConfigManager'

[AppLovinSdk] ERROR [ALSdk] Developer passed nil instead of ALAd instance - please check object types!

解决方案:
方案1:
1.unity中取消这个勾选

2.重新build
3.重新pod install
4.重新打包运行测试
方案2:
1.已经buid出来的xcode工程中的podfile中删除
- target 'Unity-iPhone' do
- end
- use_frameworks!
2.重新pod install
3.重新打包运行测试

解决方案:
最新的max聚合里面取消手动设置Ad Review了,需要找发行要一个AppLovinQualityServiceSetup-ios.rb 的文件(这个文件应该是跟账号绑定,和项目无关,每次找发行要一下没有错)
1.文件放在xcode工程目录下
2.终端cd到xcode工程目录下
3.执行
ruby AppLovinQualityServiceSetup-ios.rb
4.看到下图即成功

5.重新打开xcode打包测试
并且发现激励视频能提前关闭
解决方案:
查看是否激励视频和插屏广告的id是否填写反了
先看看31.0.0是不是确定已经装了。确定后还不行,就是as版本太新,更改了对31及以上版本打包工具目录的读取方式。解决办法为:
方法一、降低buildTools版本:
build.gradle(:unityLibrary)里的buildTooolsVersion改成31以下版本,并且在File-ProjectStruture-Module里原本填着31的地方改成对应的版本,然后在sdkManager里下载对饮的版本。
方法二、手动更改buildTools31.0.0里的部分文件名
以下两个文件夹内都有名为d8的文件,改成dx即可
~Android\Sdk\build-tools\31.0.0
~Android\Sdk\build-tools\31.0.0\lib
31以上版本同样适用。
FBAdConfigManager is a final class and cannot be subclassed. FBAdCo
nfigManager
解决方案:
在unity中的ios resolver settings面板这两个都要勾选,并重新build xcode工程后,重新pod install,再build到手机上测试

Caused by: java.lang.UnsupportedOperationException: This feature requires ASM7
截图:

解决方案:更新Gradle
方法1:

方法2:
1.点击右下角的Gradle升级的小弹窗
如果没出来的话,点击一下Sync Project with Gradle Files,等待结束,再查看右下角是否出现Gradle升级小弹窗(我是不知道其他升级方式,但这样屡试不爽),或者尝试其他升级方式


2.升级后重新build
关键词:JsonException: No parameterless constructor defined for 'Newtonsoft.Json.Converters.StringEnumConverter'.

这是因为:
il2cpp的打包方式会自动剥离不用的资源和引用,这里在打包的过程中认为项目中不需要此引用,从json.dll中去掉了StringEnumConverter,只需要在代码中增加如下代码即可,我是放在全局管理器里的Awake中,放在其他地方是否有效不清楚,让unity知道你需要用他
- //禁止il2cpp打包方式剥离Json中的StringEnumConverter代码,否则服务器返回的json配置中的enum为string类型时,无法反序列化(android、ios崩溃)
- AotHelper.EnsureType<StringEnumConverter>();
或者在
Assets文件夹中新建一个link.xml文件,文件内容如下:
- <assembly fullname="JsonDotNet">
- <namespace fullname="Newtonsoft.Json" preserve="all"/>
- </assembly>
在sourcetree界面打开终端

在终端输入
git config --global credential.helper store
执行完这条命令后,点击拉取一下,这时候会要求输入密码,之后再执行就不用了
- Cycle in dependencies between targets 'Unity-iPhone' and 'UnityFramework';
- building could produce unreliable results. This usually can be resolved by m
- oving the target's Headers build phase before Compile Sources.
- Cycle path: Unity-iPhone → UnityFramework → Unity-iPhone
- Cycle details:
- *************************************************
错误截图:

解决方案1:
Clean Build Folder后重新build
解决方案2:

关键词:Mintegral、max、mtg、android studio
报错内容:
- /Users/xxx/.gradle/caches/transforms-2/files-2.1/989bb625a9bd9c43e037d3d88a568dcf/core-1.7.0/res/values/values.xml:105:5-114:25:
- AAPT: error: resource android:attr/lStar not found.
报错截图:
解决方案:
gradle中的recyclerview的版本号不要用“+”
改为指定版本号:
重新buid解决
Missing signing identifier at "xxxxxxx/Frameworks/UnityFramework.framework/Frameworks/libswiftAVFoundation.dylib"
截图:

解决方案:



删除 Windows 目录下 C:ProgramData/Unity/Unity_lic.ulf 文件,重新申请即可。
该文件属于 Unity 许可证文件。多数情况下,删除该许可证即可解决问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。