当前位置:   article > 正文

记录一次接入Unity IAP Tapjoy 等SDK的过程,坑了一周,快吐血了_failed getting available android api levels. make

failed getting available android api levels. make sure your android sdk tool

安卓相关

  • unity版本是2019.4.10,接入了tapjoy,easymobile,admob,iap,chartboost
    IAP文档链接
  1. Unity界面:安装IAP,import,设置Key
  2. Key在geogle console 这个下面找到在这里插入图片描述
  3. 输入Key的时候,提升格式化错误。关闭Unity Server面板重新,打开,用右键的方式粘贴,不要用ctrl+v,即可解决
  4. 在这里插入图片描述
  5. 创建内部测试版,要加入谷歌的啥计划,目前来看有几个选项可以选择
  6. 我选择的是这个做起来不麻烦,应该行,不然谷歌就太坑了 在这里插入图片描述
  • AS打包又提醒代码没有签名,设置了Release版本,设置了一个加密的啥文件,看了看人家的博客
  • AS设置签名
  • 设置了内购,要点一次启用呢,后续可能有坑吧
  • 在这里插入图片描述
  • 修改Unity给我们参考的Demo,我感觉很小啊,不知道行不行,暂时先用着吧
  • 好家伙,上传测试版,给我来这个两个错误。
  • 在这里插入图片描述
  • 第一个错误,取消这个权限在AS里面设置,不知道禁止掉这个权限会不会有其他问题,走一步看一步了
  • 第二个错误,这篇有博客可以解决博客链接
    在这里插入图片描述
  • 遇到数据损坏的情况下,把这个连Resources文件夹一起删除之,然后重写编译一下菊花开始转了过后,就可以重新生成Settings了
    在这里插入图片描述
  • 注意VS工程,当文件夹一样的路径时候Unity会报错,这个忽略就行了
  • 上传好内部测试包,就要开始测试了
  • 这里有选项卡,你敢信吗?在这里插入图片描述
  • 先安装谷歌play在手机上,然后登录谷歌play,并且打开啊
  • 后面要把手机号和谷歌账号绑定,然后在网页上点一下测试链接,选择要安装的手机型号,最后稍等一会儿,测试版就自动安装在手机上了。。。。。。。。
  • 测试发现了广告是正常的,哪怕是测试广告有些都有内容,但是IAP支付接口调不出来,正在用Log工具查找原因,无奈Log好像会被AD系统给干掉,不知道为啥,干掉AD重新查看Log
  • 然后我查看日志看到Exception: Error: called non-existent method System.Boolean UnityEngine.VR.VRSettings::get_enabled()
  • 网上查了查这个问题说是没有升级api啥的云云?
  • 我把我的IAP升级到了2.22,然后把Plugins的两个相关dll删除,重新导入,再试试,过程中还报错了一次,被我一顿鼓捣给全部重新导入了,懵~
  • 好家伙,日志又显示不全呢,不过支付还是调不出来,并且也没有报错呢,懵了
  • 重启一到又有日志了,我去
  • 原因被我找到了,Start()看成是Init()了,
  • gradle在\2019.4.10f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates 中的baseProjectGradle
  • 还是不行,最后终于被我解决了
  • 用公司之前老项目的,dll在这里插入图片描述
  • 然后不用在Service面板上Import了,最后把IAP插件版本换成2.0.3完美解决了。
  • 安卓studio ,永远的神,打包就是快,以下有个报错都不要紧的呢
  • 在这里插入图片描述
  • 下面开始接入tapjoy,下载tapjoy SDK,导入,注意,这里ExternalDependencyManager重复了,我就没有导入了,我估计要force import 一下很有可能
  • 然后点击Window窗口自动生成一个它自己对象,然后设置SDK Key 。
  • 不过还是有GoogleVersionHandler提醒我删除过时文件,我还是点击了apply,太烦了不删的话一直提示
  • 打包上传项目,不知道是不是要设置WIFI权限申请呢
  • 在Unity的Mainfest设置,导出来在AS中没有看到,不知道为啥?有人知道吗
  • 接入chartboost,打包会失败,重新导入ExternalDependencyManager,就让它重复吧
  • 替换了xx,还在AS xml 定义了之前的tools,听说Unity中的AndroidManifest文件要合并,不知道怎么搞啊,我的项目一共有3个这种xml
  • 最后我没有合并,AS打包了将近半个小时,还是给我打出来了,不容易啊,蒙
  • 谷歌添加邮箱要按回车
  • amazon还要接入sdk,不知道IAP那里要设置publickey吗,还是怎么的,不过IAP编辑器拓展有一个按钮,要选中amazon呢
  • 还有不知道.com.xx.xxx 这个所谓的SKU需不需要更换,然后加一个渠道的前缀名字
  • 亚马逊网速贼慢,还有在列表下面点击才能进去,半个小时,1个小时过去了还是grading过去了卧槽
  • 中途不要改名字,上传会报错,因为他们调整地址就因此固定了
  • 亚马逊要进行沙盒测试 亚马逊沙盒
  • 360手机助手,解决了usb连接只能充电尴尬境地
  • 在这里插入图片描述
  • 把json文件放到手机根目录,然后重启AppTest然后点击一次屏幕果然有反应了,就是不知道能测一个啥出来?
  • 我去apk开始闪退了,不知道啥原因
  • 我已经放弃2018版本了,换成2019并且用另外的插件试试
  • 换成2019,打包有icon压缩警告,在icon ins面板选择none即可解除警告,但是在手机又不显示,还是等它警告吧
  • 导入了EasyMobile插件,然后提示是否需要自动解析,我认为一定要点开,开了后就卡进度条了33%,卧槽
  • 步骤提到了force importer 还要一定要升级UnityAPIGoAhead
  • unity 还有个placement设置卧槽
  • Failed getting available Android API levels. Make sure your android sdk tools version is 25 or higher and you have internet connection. 这个报错如何解决呢卧槽
  • 一个目标apilevel 必须要多少多少?
  • 设置了30,unity却无法安装遇到老问题了?
  • ARM我只选择了64,不管了,而且警告我都不管
  • 我选了Disable不自动解析
  • 把所有插件都装了然后再force importer,等了2个小时还是好了
  • 不过这个创建加载广告的速度实在是太慢了,不知道为啥?
  • 重新打包又卡死,卧槽!!!!
  • 我去我还修改编辑器baseGradle模板,以为加速度了,结果还是很慢简直受不了了
  • 以后切记莫把软件安装在C盘了,太难玩了
  • 用最古老跨平台技术powershell删了吧
  • 在网站根目录在 robots.txt 文件中添加以下两行文字:
User-agent: Google-adstxt
Disallow:
  • 1
  • 2
  • 然后网站我还是设置了重定向
server {
  listen 80;
  server_name superwinslots.com,www.superwinslots.com;
  return 301 http://www.superwinslots.com$request_uri;
  root /usr/share/nginx/html;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Resolve 安卓依赖,下了很久呢,然后还要Resolve 我实在搞不懂了,用什么自定义baseGradle.还要在Unity那里给点出来

  • 这些依赖,我一次全部导入,并且删除,重复的,导入的时候也删除了重复,然后开启Auto Resolving然后我就真的不管了,实在是太麻烦了

  • 关闭auto resolve了,还要点一下ok

  • 开始打包,结果报错了
    在这里插入图片描述

  • 首先我们到这个目录下,执行 ./sdkManager.bat --licenses 一路yyyyyyyyy

  • 在这里插入图片描述

  • 然后打包又报错,说什么无法识别,

  • 首先选中这个在这里插入图片描述

  • 这里把默认的3.4.0改成3.4.3
    在这里插入图片描述

  • 嗯,打包终于不报错了,不过呢不知道sdk能生效不,反正我看有gradle依赖冲突也只是警告,还很各种Mainfest会不会合并在一起,有无问题我也不知道!

  • 把用Unity打的包(放弃AS了),直接上传谷歌,看看有无报错信息,这年头没报错都算是不错了,警告算什么

  • 又开始报错“您上传的是可调试的 APK 或 Android App Bundle。出于安全考虑,您需要先停用调试功能,然后才能在 Google Play 中进行发布”

  • 网上查了查,估计要重新用谷歌工具签名,Unity的签名瞬间成了摆设

  • 我之前就搞过这个,我怀疑是换了2019版本后,jdk1.8生产的output,和unity自带的openJDK生产的会不一样。所以导致谷歌识别错误,说我不是release版

  • 上面2个步骤都是错的,最后只需要在标记这里弄成false就弄对了。
    在这里插入图片描述

  • 再次总结了一下安装了插件并且依赖设置到位后,因为打包错误,所需要修改的地方有哪些

    • 需要licenses
    • 需要gradle改成3.4.3
    • 需要修改android:debuggable=false, 再次重申一下各gradle配置文件的依赖冲突我就没手动,各Mainfest.xml,只改了一个而且还是这一个
  • 至于其他插件的权限xml标签暂时不管,都以后有问题再加了

  • 除了设置unityiap的 publickey ,还有这里publickey我估计也要设置,在这里插入图片描述

  • 反正上面我最后一个没加,没点击Obfuscate

  • 发现Unity又要resolve依赖,怀疑是依赖之间冲突,导致被solve误删,因为删掉了所以又要重新resolve

  • 一些重要信息,设置了base.gradle一定要重启Unity可能才生效,Resolving很慢,咱不讨论冲突问题,很慢是因为vpn开了http代理,但是没有全局代理,软件用会很慢

  • 在Unity/Libery 里面的xml,我已经注释掉过时的依赖,统一用andriodx的依赖,看看会不会更快
    在这里插入图片描述

  • 因为结算库要用3.0,我又升级到iap2.2.2,报错需要把iap导入的plugin删掉,重新导入之

  • 后来我发现Libery里面依赖xml注释掉可能还不行,需要dispaly中看到来自于哪里,然后在根源的依赖xml文件一个一个去注释,而且还可以设置依赖库地址,这才是慢卡住真正的根源,当然了我的vpn

  • 果不其然换了谷歌镜像快到没有朋友 之前要两个小时现在2分钟reslove就解决完毕了

  • 由于谷歌支付库要升级3.0所以要升级Unity iap 但是报错了

Library\PackageCache\com.unity.purchasing@3.1.0\Runtime\AppleCore\INativeAppleStore.cs(3,44): error CS0122: 'INativeStore' is inaccessible due to its protection level

  • 1
  • 2
  • 说什么不需要windows update 但是打包又报错了
    C:\Users\SkyAllen\Desktop\TempVideoPoker\Temp\gradleOut\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity.java使用或覆盖了已过时的 API。
    在这里插入图片描述
  • 添加一个试试不行就没辙
  • 发现这里不行会被复写,必须到base.gradle哪里去设置
  • 版本日志中找到了AmazonR8相关的支持,我只能说版本要新点的才好,千万不要自己手动改,直接升级版本了 ,这么多人用,不可能都是原生java,oc大神的
    在这里插入图片描述
  • 目前还有两个问题需要解决,amazon沙盒测试、iap谷歌库3的警告
  • 谷歌3警告已经解决,iap换成3.2.3版本,删掉之前importer,然后window窗口哪里不要再iimporter了
    在这里插入图片描述
  • amazon沙盒厕所我也解决了,注意以下3点
    • ARMv7要选中
    • json要放sdk卡根目录,先进游戏,后打开AppTest,设置Success状态,这样沙盒测试就能够吊起了
    • 应用要有读取外部卡json的权限
  • ChartBoost默认选Default设置
  • 提交亚马逊报错说提供了谷歌的服务,没有一个设备支持,它是运行不了
  • 亚马逊商店不支持啥GPS定位系统。最后解决了原来就是apk重复上传了,只保证上传一个apk就行了

IOS相关

  • 接受老板的账号邀请
  • 第一个血坑,有个页面itunes connect 关闭科学上网用safari就可以打开。
  • xcode点击项目,然后在Signing栏目点击Team,设置一个账号
  • 选择团队,下载profiles,然后C ertifaci证书新建一个吧我估计。
  • 我还点击了Automatically manage signing 还是报错,重启下选择了团队,就没有错误了
  • 进入App Connect 设置内购信息
  • ios内购选了,删除了就永远不能用了,只能前缀法,所以尽量别依赖第三方插件,不要的插件一定要删除,还有页面位置规律
  • iap没法设置价格权限不够的问题,
  • ios为准确没问题,andiord一定没问题,反之则不一定,苹果为了美,连内购价格都无法自定义
  • 说什么不能运行次设备,链接的真机也检查不到。
  • 打包出错了iOS framework addition failed due to a CocoaPods installation failure. This will will likely result in an non-functional Xcode project.

After the failure, “pod repo update” was executed and succeeded. “pod install” was then attempted again, and still failed. This may be due to a broken CocoaPods installation. See:

  • 结果不选Build and run,只选择Build就不会报错了
  • xcode结果报错,自动管理不行了,要手动sign
  • 要创建一个Profiles文件,但是据说证书有现成的不用建立了。
  • 打包又出现了错误iOS framework addition failed due to a CocoaPods installation failure. This will will likely result in an non-functional Xcode project.
  • 这篇博客试试重新安装一下cocospad
  • 终端执行了两个地方好像有作用了,但是打包很慢很慢,我猜都是cocadpod代理不好用的关系。
vim ~/.profile  
export LANG=en_US.UTF-8
  • 1
  • 2
  • 其实是iosPod标签依赖了很多github的库,必须开启全局代理,才会很快就下载完毕。
  • 下面开始cocoaPods骚操作
sudo gem install cocoapods
/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"
brew install gnupg 
  • 1
  • 2
  • 3

安装相关博客

  • rvm 需要source
gem sources --remove https://rubygems.org/
gem sources --add https://gems.ruby-china.com/
sudo gem install -n /usr/local/bin cocoapods

  • 1
  • 2
  • 3
  • 4
  • 安装cocoaPods报错了
  • Could not find a valid gem ‘i18n’ (< 2, >= 1.6) (required by ‘cocoapods’ (>= 0)) in any repository
  • 然后执行了sudo gem install cocoapods --source http://rubygems.org 没报错了,不过要反应很久
  • 安装好了显示有33个gem,果然还是要升级ruby,rvm等操作
  • 在XCode现在也不报错了,但是一但点击播放按钮,就报The Legacy Build System will be removed in a future release.You can configure selected build system and this deprecation message in File> Project Settings.
  • 在Xcode-》File-》ProjectSetting-》更换下构建模式就不报错了
  • 有3个可以点击的工程,设置的时候不要搞错了。
  • 当我选择了一个profile,报错说这个profile没有包含证书Provisioning profile “vpk2021_skyAllen_release” doesn’t include signing certificate "Apple Distribution:.
  • 然后我在网页上让profile重新拥有另一种证书就不报错了
  • 接好ip6开始真机调试打包(不是Unity),结果报错’Tapjoy/Tapjoy.h’ file not found
  • 估计是没有设置key的原因造成的,不调用应该就行了,重新打包试试
  • 没办法我只能把tapjoy给删除了
  • “AppsFlyerLib.h” not found 又报错了
  • 说什么打开xcworkspace没有依赖,还有 pod install
  • APP ID=团队前缀+bunlde ID(也就是SKU)
  • 但是AppFlyer上用的是apple id
  • 网上查了查发现之后工程目录中会出现xcworkspace文件,一定要用这个文件打开工程最后才能正常打包。
  • 因为unity是可以在Build Xcode工程的时候直接安装cocoapos依赖的。
  • 果然用xc打开不报错了,但是打包到最后告诉我不能够安装游戏
  • 点击detail,查看不能安装的原因
  • 搜了半天,也许要develop模式才能调试呢
  • 发现Unity可以手动设置profile,我就设置了,还是选择Release模式试试吧
  • 结果还是profile 有效的没有被找到
  • 那么我在Unity弄成develop模式试试
  • 经过我一番折腾(申请证书,设置profile文件,取消device的网页警告),申请了dev证书用于真机测试,并在profile包含了证书,重新保存下载导入,结果xcode就正常了,看看这次能真机调试不
  • 但是打包依然报错还有之前残留的profile文件信息
  • 把unity在编辑器设置的profile干掉,重新打包,选择dev模式试一试
  • 结果在xcode不能选择团队了卧槽,而且控件都不能点了
  • 在unity编辑器中设置了团队ID V58* 看能不能自动识别。
  • 打包最后教我输入登录钥匙串的密码????
  • 我输入了开机密码,然后在钥匙串中设置不需要权限访问试试
  • 也就是其实密码我是输入对了,但是它弹窗有多个,造成误会密码不对
  • ok终于在真机上测试正常了,多亏了在unity编辑器设置团队id,这才是正确做法,而且检查的时候要选择在xcode中间栏目中选择ip6,支付是能够吊起的没有科学上网,但是广告好像不能用。回头用测试的广告试试。。。。。。
  • 上架apple的服务器还要网上搜一搜人家是怎么做的呢
  • 重新用了老板的证书和profile,试试,反正证书下载下来好像要双击才能注册什么的
  • 好像要搞 https://www.cnblogs.com/coolcold/p/10477649.html p12文件啥的
  • 结果老板没有制作发布profile,可能我制作的不行,试试了老板的感觉也不对,我也不重新装入unity,直接第一个UnityApp不报错就点击Actrice,当然了至于UnityAppTest 有sign的错误提示暂时先不管了
  • 我靠但是居然Actrive成功了
  • 我选择了Validating app,又要输入证书和profile
  • 我选择了老板的证书后又报错Missing private key for signing certificate.
  • 我选择了默认我创建的证书试试,看这个过程到底在做什么
  • App Store Connect Operation Error
  • 什么好像要支持64的
  • 但是默认是开启的呀,先不管了,我选择了distribute app 下面的ad hub,结果又是证书配置有误
  • 我在编辑器Aarichve 设置了支持64位
  • 修改build码
  • 证书需要双击导入到钥匙串,并且还要使用系统默认的
  • 密钥的导入也需要双击才能导入进去xcode
  • 点击Product->Scheme->Edit Scheme可以配置一些东西
  • 删除了很多证书,然后导入p12证书,结果显示p12不受信任报错
  • 我下载一个W开头的证书重新安装p12还是无法受信任(可能要下另一个版本W开头的证书)
  • 后来我去下载另一个,通过双击证书,展开“信任”下拉栏,手动选择信任!!!
  • 还是报错,选择repair turst setting 结果不报错了,但是Unity-iPhone Tests哪里有Signning错误不管了
  • 弹出警告说,没有arm7,不管了我选择Build,结果打包又报错了Provisioning profile xx
  • 但是Archiving却没有停止的迹象,好吧我等等再看。。。。
  • 结果报错消失了,然后我估计之前的证书错误,是因为钥匙串默认证书Default导致的,只留一个证书,对方就没得选了
  • 我Arching成功后,我直接Dirs App 然后选择Enterprise
  • 选择profile 结果报错Profile is not an “iOS In House” profile
  • 我放弃了选择了AppStoreConnect中的Export
  • 嗯现在证书正常了,等待export中
  • 成功了!!!,然后这个文件夹里面有iap了
  • 现在打包不报错很顺利了,但是我arching后还是选择了validation APP试一试看看有啥问题
  • 结果显示成功验证了太棒了!!!准备发布
  • 开始显示Uploading…了
  • 在Xcode中的->Window->Organizer 中找到arching的项目
  • 结果上传的时候报错了AppStore Connect Operation Error 一大串不知道是啥
  • 网上搜了搜说同样有这个报错,解决办法千奇百怪百怪,先重启下吧
  • 大佬说xcode传输工具版本太低,推荐导出iap,用Transporter上传。。。。
  • 我没用商店的Transporter,科学上网用下面步骤解决了,没用3步骤,用3下面注释的步骤。
// 1. 打开缓存路径
open ~/Library/Caches/com.apple.amp.itmstransporter/
// 2. 删除当前目录下所有文件
 
// 3. 重新下载安装插件(下载文件大小约60M+,建议科学上网)点击iTMSTransporter文件就行
/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter  // 针对Transporter
// /Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/bin/iTMSTransporter // 针对Application Loader
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 完毕上传成功了!!!!

  • TestFlight上面点击一下,然后发布就可以找到构建版本了,发布的时候点击广告,广告也会申请成功了。。。。。

  • 所有流程完结声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】

推荐阅读
相关标签