痛定思痛之下,还是决定写篇文章,长期更新每次打包遇到的问题,以及解决问题的方案。
Android比IOS头痛很多,自从升级了Gradle打包模式之后,事件就越来越多,促使我写这篇文章的最后一点刺激来自于升级了Unity2019,加入了Google Admob,要求Ndk 16b版本,也对Android SDK版本有一些要求,Ios从打包测试(整1天)完成之后,打包Android后报错了。
其实之前也遇到打包问题,Ios都还比较好说,比如上次加入了一个广告联盟平台,Android打包就报方法超65535的一个错,需要引用Gradle,在广告技术对接群的支持下花了大概几天的时间才OK。
Unity打包出错通常会报明原因,但是Android和Ios的区别是,Android告诉你去参见这个网址, Ios告诉你怎么怎么做。通常情况下,你不得不把报错去Google一下。
IOS篇
Unity里 Build,打开Xcode,插入设备,不做任何修改直接运行不报任何错则是我们的目标,正式上线的项目貌似
ios对打包的支持已经很不错了,更新Xcode,下载Unity的IOS编译环境,为了提升效率,以下步骤与插件不可或缺
- 在Unity Player Setting里面设置好你的 Apple Team ID
- CocosPods 插件安装,没有3方SDK不需要,有的话还是加上吧,特别方便
Apple Team ID在这里发现 https://developer.apple.com/account/#/membership/XXXXX ,登录你的开发主帐号XXXX即为ID,也可以在Membership选项卡里发现,如图所示
从Unity5.x 到2019,打包Xcode的工程在2分钟内,从Xcode到真机上3分钟,当然和项目内容(主要是SDK)与电脑性能了,我测试时是MacBookPro15寸2014 + 中小型项目(集成IAP和GoogleAdmob)。
遇到cocoapods 相关的错误,,请检查你的IOS版本等级,调用9.0以上就OK。2019年10月19号更新,需要安装cocoaPods app在Mac上。
Android 篇
原因,加入了Admob,应该是这里出的原因:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
CommandInvokationFailure: Gradle build failed. /Applications/Unity/Hub/Editor/2019.2.2f1/PlaybackEngines/AndroidPlayer/Tools/OpenJDK/MacOS/bin/java -classpath "/Applications/Unity/Hub/Editor/2019.2.2f1/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease" stderr[ FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':lintVitalRelease'. > Could not resolve all files for configuration ':lintClassPath'. > Could not download kotlin-compiler.jar (com.android.tools.external.com-intellij:kotlin-compiler:26.4.0) > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/external/com-intellij/kotlin-compiler/26.4.0/kotlin-compiler-26.4.0.jar'. > SSL peer shut down incorrectly * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 17m 39s ] stdout[ > Task :preBuild UP-TO-DATE ………… > Task :lintVitalRelease FAILED Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/5.1.1/userguide/command_line_interface.html#sec:command_line_warnings 24 actionable tasks: 24 executed ] exit code: 1 |
这尼玛,凭我第6感的灵性,我并没有去找哪哪哪网址,我修改了以下设置:
Android以下的4个,全部勾了,自己选位置,打包,洗澡回来,Done!(Mac端 Unity2019.2.2f1)
在Windows上,Unity2019 2.3f1尼玛死活打包不成功,无奈下载了自带的Android Support支持,xx的
还是报错,今日元气大伤,让我结束这痛苦的一天,改日再约。