位置: IT常识 - 正文

Unity iOS打包发布流程(unity怎么打包unitypackage)

编辑:rootadmin
Unity iOS打包发布流程 一、版本说明Unity 2020.3.33fMacOS Monterey 12.3.1XCode 13.4.1二、开发者账号

推荐整理分享Unity iOS打包发布流程(unity怎么打包unitypackage),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity打包安卓流程,unity2019打包apk,unity ios 打包,unity打包ios打包流程,unity ios 打包,unity打包apk,unity ios 打包,unity打包ios打包流程,内容如对您有帮助,希望把文章链接给更多的朋友!

苹果开发者平台 https://developer.apple.com/

类型用途限制费用个人开发者账号用于个人开发者进行开发和向AppStore上传应用只能有一个开发者,调试设备受限$99公司开发者账号用于公司或团队进行开发和向AppStore上传应用可以有多个开发者,调试设备受限,将个人开发者邀请到团队中来$99企业开发者账号用于企业内部发布,不需要审核,但是不能将应用发布到AppStore任何设备都可以通过苹果OTA方式进行安装$290三、证书【1】创建证书签名文件(CSR)

【2】在线申请证书

证书是对电脑开发资格的认证,需要在电脑上安装证书才能正常打包,每个开发者帐号有一套,分为两种:

Developer Certification(开发证书):用于开发测试;Distribution Certification(发布证书):用于打包测试ipa或者Appstore的安装包;【3】关联签名文件,并下载证书双击使用

【4】导出p12文件,供其他电脑使用

在钥匙串中,找到我的证书

四、APPID相关(用于后续出包)

苹果开发者平台 https://developer.apple.com/

【1】Identifiers(BoundID)

和unity中的Identifiers保持一致

【2】Devices(添加测试设备UDID)

获取设备的udid 第一种直接在XCode中查看 第二种通过蒲公英等工具获取,https://www.pgyer.com/tools/udid?sl=WrUS

【3】Profiles(与证书配套使用的描述文件)

填写对应的appid 下载下来,后面打包发布会用到,文件后缀为mobileprovision 主要有 dev、release、hoc几种版本

五、Unity打包iOS相关【1】注意事项需要添加icon图,不然xcode出包会报错Build 如果在版本号不变的情况下,每次打包需要递增Scripting Backend IL2CPP相机、麦克风、定位等如果使用到的权限需要添加描述ios最低版本号要求Architecture(架构) 需要设置为ARM64【2】通过c#修改XCode项目配置(可跳过)//打包后调用[PostProcessBuild]static void OnBuildFinish(BuildTarget target, string buildPath){ if (target == BuildTarget.iOS) { SetXCodePro(buildPath); } Debug.Log("打包完成!");}static void SetXCodePro(string buildPath){ PBXProject project = new PBXProject(); project.ReadFromString(File.ReadAllText(PBXProject.GetPBXProjectPath(buildPath))); string targetGuid = project.GetUnityMainTargetGuid(); //添加库 //project.AddFrameworkToProject(targetGuid,"ARKit.framework",false); //添加权限 PlistDocument plist = new PlistDocument(); plist.ReadFromString(File.ReadAllText(Path.Combine(buildPath, "Info.plist"))); plist.root.SetString("NSCameraUsageDescription", "APP需要您的同意,才能使用摄像头,以便于相机拍摄,检测现场环境"); plist.root.SetString("NSMicrophoneUsageDescription", "APP需要您的同意,才能使用麦克风,以便于视频录制、语音识别、语音聊天"); //缺少合规证明 plist.root.SetBoolean("ITSAppUsesNonExemptEncryption", false); //URL Schemes var urlTypeArray = plist.root.CreateArray("CFBundleURLTypes"); var urlTypeDict = urlTypeArray.AddDict(); urlTypeDict.SetString("CFBundleTypeRole", "Editor"); urlTypeDict.SetString("CFBundleURLName", "com.pisx.cy"); var urlScheme = urlTypeDict.CreateArray("CFBundleURLSchemes"); urlScheme.AddString("cy"); //scheme plist.WriteToFile(Path.Combine(buildPath, "Info.plist")); //设置签名证书 project.SetBuildProperty(targetGuid, "CODE_SIGN_IDENTITY", "Apple Development: xin yang (V6P37FUD2P)"); //project.SetBuildProperty(targetGuid, "PROVISIONING_PROFILE_SPECIFIER", ""); project.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO"); project.WriteToFile(PBXProject.GetPBXProjectPath(buildPath)); }

Xcode属性查看 在xcode工程所在目录右键->在终端中打开->输入命令xcodebuild -showBuildSettings能看到所有的属性名。

【3】打包结构图.xcodeproj xcode工程文件info.plist 权限配置文件MapFileParser.sh 授权解析,终端命令, chmod +x 该文件路径六、Xcode打包【1】将unity打包好的xcode工程用Xcode打开【2】登录自己的开发者账号

Xcode>Preferences>Accounts

【3】配置签名Unity iOS打包发布流程(unity怎么打包unitypackage)

【4】bitcode

需要设置为No,否则发布时编译会无法通过

【5】权限操作

用2019等较低的Unity版本打的包,需要勾选 File>ProjectSetting>Do not show a diagnostic…

文件读取授权,在终端窗口输入 chmod +x MapFileParser.sh文件的完整路径

【6】打包

测试包(Debug):用usb连接iPhone手机,选择该设备,点击Build 正式包(Release):Product > Archive,等待构建成功后,依次点击上传发布

提示:选中Xcode然后 状态栏Window - >Organizer就可以看到所有的Archive版本啦!

七、发布

前往苹果开发者平台的app store页面,新建App

【1】TestFlight审核时间较短、一般用于内部测试可以生成公开链接(兑换码)的形式,在iPhone的TestFlight中下载应用进行试用(90天),这样外部人员也可以使用了。填写测试信息【2】AppStore审核时间长、较为严格、上架AppSrore,其他人可以进行下载需要填写详细的发布信息【3】Hoc 用于内测,直接发布ipa八、参考链接

证书与文件配置: https://zhuanlan.zhihu.com/p/208896244 打包视频教程: https://www.bilibili.com/video/BV1Qt4y1a7aW?p=12&vd_source=226406b39053c6ed9e7307c51d05c436

九、Error合集

xxx.framework was build for iOS+iOS Simulator 项目 -> Build Settings -> Build Options -> Validate Workspace = Yes

no space left on devices 没有剩余空间,删除一些本地文件,留出内存

ERROR ITMS-90087: “Unsupported Architectures. The executable for XXX.app/Frameworks/XXXBLE.framework contains unsupported architectures ‘[x86_64]’.” appstore不支持当前framework的架构,里面有不支持的静态库(framework)

$ lipo -info workspacePath/XXX.framework/XXX

命令来检查一下frame。 解决方法是生成binary的时候使用一段script来去掉那些不支持的结构。 在Xcode中选择项目->targets->Build Phases, 找到 Run Script。 Shell填入:/bin/sh

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" # This script loops through the frameworks embedded in the application and # removes unused architectures. #find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK find "$APP_PATH" -name 'AgoraRtcWrapper.framework' -type d | while read -r FRAMEWORKdoFRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable) FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME" echo "Executable is $FRAMEWORK_EXECUTABLE_PATH" EXTRACTED_ARCHS=() for ARCH in $ARCHSdoecho "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME" lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH" EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH") doneecho "Merging extracted architectures: ${ARCHS}" lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}" rm "${EXTRACTED_ARCHS[@]}" echo "Replacing original executable with thinned version" rm "$FRAMEWORK_EXECUTABLE_PATH" mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH" done

ERROR ITMS-90085: “No architectures in the binary. Lipo failed to detect any architectures in the bundle executable.” 这样的话需要修改一个地方就可以了,因为不是全部的sdk 都需要,只修改对应的就可以了。

原来:"$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK更换后:"$APP_PATH" -name '[frameworkname].framework' -type d | while read -r
本文链接地址:https://www.jiuchutong.com/zhishi/299099.html 转载请保留说明!

上一篇:vue3+ts:安装路由(router)(vue路由使用方法)

下一篇:【小糖专栏】中文论文翻译成英文投稿国外期刊的小tips(小糖是谁)

  • 抖音如何看别人在线状态(抖音如何看别人主页不被发现)

    抖音如何看别人在线状态(抖音如何看别人主页不被发现)

  • 荣耀20与华为p10的区别(荣耀20与华为p20pro哪个好)

    荣耀20与华为p10的区别(荣耀20与华为p20pro哪个好)

  • 小米手机怎么打开地震预警(小米手机怎么打开OTG)

    小米手机怎么打开地震预警(小米手机怎么打开OTG)

  • 引闪器怎么连接闪光灯(引闪器怎么连接两个闪光灯)

    引闪器怎么连接闪光灯(引闪器怎么连接两个闪光灯)

  • iphone自动变暗怎么关(iphone手机自动变暗)

    iphone自动变暗怎么关(iphone手机自动变暗)

  • 华为nova7怎么查真伪(华为nova7怎么查出厂日期)

    华为nova7怎么查真伪(华为nova7怎么查出厂日期)

  • 在word中用户可以用什么的方式保护文档不受破坏(在Word中用户可以绘制斜线表头)

    在word中用户可以用什么的方式保护文档不受破坏(在Word中用户可以绘制斜线表头)

  • 快手感兴趣的人哪来的(快手感兴趣的人删除了还推荐)

    快手感兴趣的人哪来的(快手感兴趣的人删除了还推荐)

  • 微信群怎么撤回超过两分钟的消息(微信群怎么撤回图片)

    微信群怎么撤回超过两分钟的消息(微信群怎么撤回图片)

  • 快手长腿瘦身特效在哪(快手长腿瘦身特效跟以前不一样)

    快手长腿瘦身特效在哪(快手长腿瘦身特效跟以前不一样)

  • 微信里的京东老黑屏(微信上的京东)

    微信里的京东老黑屏(微信上的京东)

  • a2124是苹果mini5吗(ipadminia2125是什么型号)

    a2124是苹果mini5吗(ipadminia2125是什么型号)

  • airpods二代充电盒充电要多久(airpods二代充电头多少w)

    airpods二代充电盒充电要多久(airpods二代充电头多少w)

  • 手机光有紫外线吗(手机光有紫外线吗医生)

    手机光有紫外线吗(手机光有紫外线吗医生)

  • 存储器分为哪两种(存储器分为哪两级)

    存储器分为哪两种(存储器分为哪两级)

  • 京东怎么撤销退款申请(京东怎么撤销退款申请苹果手机)

    京东怎么撤销退款申请(京东怎么撤销退款申请苹果手机)

  • 测距仪有什么用途(测距仪有什么用途和作用)

    测距仪有什么用途(测距仪有什么用途和作用)

  • 苹果11pro是不是双卡(苹果11pro是不是双扬声器)

    苹果11pro是不是双卡(苹果11pro是不是双扬声器)

  • cclink通讯原理(cc-link总线通信特点有哪些?)

    cclink通讯原理(cc-link总线通信特点有哪些?)

  • lcd和oled哪个护眼(lcd和oled的区别护眼)

    lcd和oled哪个护眼(lcd和oled的区别护眼)

  • 用Ps怎么制作有质感毛玻璃效果(ps怎么制作有序排列图案)

    用Ps怎么制作有质感毛玻璃效果(ps怎么制作有序排列图案)

  • 微信乘车码可以刷两个人吗(微信乘车码可以开发票吗)

    微信乘车码可以刷两个人吗(微信乘车码可以开发票吗)

  • Win7系统加入域时提示“找不到网络路径”?(win7电脑加入域)

    Win7系统加入域时提示“找不到网络路径”?(win7电脑加入域)

  • 腾讯电脑管家怎么清除痕迹?(腾讯电脑管家怎么修复dll)

    腾讯电脑管家怎么清除痕迹?(腾讯电脑管家怎么修复dll)

  • dede编辑文章更新发布时间的方法(dedecms怎么更换模板)

    dede编辑文章更新发布时间的方法(dedecms怎么更换模板)

  • 购买二手车是否适用消费者权益保护法
  • 厂家返点是什么意思
  • 未取得发票的费用,在汇算清缴中按利润计算吗
  • 药品费用开具增值税发票项目应为什么
  • 事业单位补提折旧怎么处理
  • 个人经营所得税减免税优惠政策
  • 小微小型微利企业减按20%的所得税税率征收企业所得税
  • 贷款利息是否能降低
  • 房屋合同印花税税率属于个人交的吗
  • 免交城建税的会计分录
  • 什么叫调表不调帐
  • 库存现金盘盈盘亏的账务处理
  • 建筑企业会计科目分类及明细表
  • 劳务派遣营改增政策
  • 办理会员卡套路消费
  • 经济补偿金也需要交个人所得税吗?
  • 企业税收滞纳金计入什么科目
  • 企业破产清算怎么做账务处理实务工作
  • 个体户核定征收超过了怎么办
  • 营改增相关规定
  • 携税宝报税操作流程
  • 诉讼费和保全费什么时候能退还
  • 物流公司承担货物损失赔偿如何写会计分录
  • 开票金额小于付款金额,怎么办理
  • 食堂货款报账明细表
  • 补提以前年度摊销
  • 小额贷款公司可以放贷吗
  • 支付商业保险费属于什么现金流量项目
  • itunes无法链接
  • linux批量操作工具
  • win10 21h1正式版怎么样
  • 备用金的会计分类
  • 虚增成本调增还会被处罚吗
  • 股份公司的架构
  • 电脑自带网速测试
  • mcrlnstaller
  • php面向对象是什么意思
  • 销售旧设备如何开票
  • 盘亏应交税费
  • ajax调用php接口
  • Vue Router4 ,prams 传参失效和报错问题
  • d2loader does not recognize
  • chatteing
  • 去年多计提的所得税怎么调整
  • 转让全部探明矿权合法吗
  • 公司清算的特征
  • 合并抵消分录影响母公司总分类账吗
  • 买个人的二手车能贷款吗
  • 单位外币卡账户的资金应从其单位的外汇账户转账存入
  • 转账支付水电费
  • 红冲发票后如何申报增值税
  • 买入返售金融资产属于金融资产吗
  • 原材料用于在建工程进项税可以抵扣吗
  • 银行存款会计分录需要输入哪些内容
  • 土地无形资产摊销的会计处理方法
  • 没有计提社保如何处理
  • 信用减值损失和公允价值变动的区别
  • 给员工购买的意外险可以税前扣除吗
  • 次年发放的奖金怎么入账
  • 施工企业应收账款确认依据
  • sql查询包含特殊
  • sql 语句
  • sql server触发器的编写与使用
  • Win10预览版镜像
  • xp系统怎样创建网络连接
  • gdiwindow是什么
  • 制作win7系统安装u盘系统
  • dwrg_repair.exe什么意思
  • windows 查看补丁
  • win10升级补丁后死机
  • node.js入门教程
  • android 基础
  • 网页设计div css布局
  • vue仿知乎
  • jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
  • js中的常用方法
  • 财务审计报告出现数据错误怎么处理
  • 河南省地方税务局房产税管理办法
  • 四川农村信用社电话
  • 河南省优秀班主任2022
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设