位置: 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(小糖是谁)

  • 小米9自动亮度失灵(小米9自动亮度怎么关)

    小米9自动亮度失灵(小米9自动亮度怎么关)

  • 手机屏幕黑色怎么调白(手机屏幕黑色怎么变过来)

    手机屏幕黑色怎么调白(手机屏幕黑色怎么变过来)

  • 微信朋友圈看不见别人发的图片怎么回事(微信朋友圈看不到内容,打开朋友圈就能看到,为什么)

    微信朋友圈看不见别人发的图片怎么回事(微信朋友圈看不到内容,打开朋友圈就能看到,为什么)

  • iphone6s和iphone8区别(iphone6s与iphone8对比)

    iphone6s和iphone8区别(iphone6s与iphone8对比)

  • iPhonese是双扬声器吗(苹果se是双扬声器)

    iPhonese是双扬声器吗(苹果se是双扬声器)

  • 投屏很卡是什么原因(投屏卡是什么情况)

    投屏很卡是什么原因(投屏卡是什么情况)

  • qq运动步数多久更新(qq运动步数什么时候清零)

    qq运动步数多久更新(qq运动步数什么时候清零)

  • 微信不符合辅助要求是什么意思(微信不符合辅助验证)

    微信不符合辅助要求是什么意思(微信不符合辅助验证)

  • lofter举报人会不会显示昵称(lofter举报了作者会知道吗)

    lofter举报人会不会显示昵称(lofter举报了作者会知道吗)

  • 苹果11新机电池不耐用(苹果11新机电池健康多久会掉)

    苹果11新机电池不耐用(苹果11新机电池健康多久会掉)

  • 小米手机发热(小米手机发热严重吗)

    小米手机发热(小米手机发热严重吗)

  • 手机号码不支持充值是怎么回事(手机号码不支持线上实名认证)

    手机号码不支持充值是怎么回事(手机号码不支持线上实名认证)

  • 移动4G怎么升5G(移动4G怎么升级5G套餐)

    移动4G怎么升5G(移动4G怎么升级5G套餐)

  • 快手交易关闭是什么意思啊(快手付款成功显示交易关闭)

    快手交易关闭是什么意思啊(快手付款成功显示交易关闭)

  • 华为mate30要贴膜吗(华为mate30贴膜后无法截屏)

    华为mate30要贴膜吗(华为mate30贴膜后无法截屏)

  • 增量下载怎么解决(增量下载设置在哪)

    增量下载怎么解决(增量下载设置在哪)

  • 抖音号没绑定手机号怎么登录(抖音号没绑定手机号码怎么登录抖音)

    抖音号没绑定手机号怎么登录(抖音号没绑定手机号码怎么登录抖音)

  • 苹果手机咋查拦截电话(苹果手机怎么查拦截电话号码)

    苹果手机咋查拦截电话(苹果手机怎么查拦截电话号码)

  • 手机怎么拦截垃圾短信(手机怎么拦截垃圾网站)

    手机怎么拦截垃圾短信(手机怎么拦截垃圾网站)

  • 三星s10怎么开启无线充电(三星s10怎么开启120hz)

    三星s10怎么开启无线充电(三星s10怎么开启120hz)

  • 苹果x双卡双待吗(苹果x双卡双待是哪一款)

    苹果x双卡双待吗(苹果x双卡双待是哪一款)

  • 苹果聊天记录删除可以恢复吗(苹果聊天记录删除了还能恢复吗?)

    苹果聊天记录删除可以恢复吗(苹果聊天记录删除了还能恢复吗?)

  • oppo手机从哪里调色彩(oppo手机从哪下载软件)

    oppo手机从哪里调色彩(oppo手机从哪下载软件)

  • 华为mate20的返回键在哪里(华为mate20的返回键)

    华为mate20的返回键在哪里(华为mate20的返回键)

  • 华硕主板进入bios后怎么开启VT虚拟化技术选项?(华硕主板进入bios设置)

    华硕主板进入bios后怎么开启VT虚拟化技术选项?(华硕主板进入bios设置)

  • win10开机启动文件夹在哪里(win10开机启动文件夹目录说明)

    win10开机启动文件夹在哪里(win10开机启动文件夹目录说明)

  • 产权转移数据的交易价格和固定资产科目
  • 房产税的征收范围包括农村吗
  • 小规模纳税人利息收入增值税税率
  • 工资以现金形式发放的情况说明
  • 待处理财产损益年底怎么处理
  • 会计做账写错了怎么办
  • 企业年末要写财务报告吗
  • 小规模纳税人收到专票后如何处理
  • 跨年度费用怎么入账
  • 取得与收益相关的政府补助会计分录
  • 长期借款利息按月计提按季支付
  • 工程成本哪些可以抵扣
  • 小规模没有进项票可以开销项票吗
  • 建筑企业之前的工作内容
  • 促销服务费能抵增值税吗
  • 国家税务总局公告2012年第57号
  • 工会经费的纳税依据
  • 现金福利需要发票吗
  • 长期待摊费用涉税风险应对
  • 产生个人所得税之后是不是不能公益性岗位
  • 购买免税苗木抵税分录
  • 多用途预付卡发卡方账务处理
  • 增值税红字发票是什么意思
  • 当月取得的进项必须当月勾选吗
  • 哪些发票可以开专票
  • 主机倒地后打不开电脑
  • 会计折算是什么意思
  • win7纯净版系统之家
  • bds.exe
  • 以前年度少计收入 会计怎么处理
  • css实现轮播图侧边阴影效果
  • php防止sql注入的方法
  • devtools安装mac
  • 固定资产已提完折旧后丢失怎么处理
  • python编程100例
  • metareplace -e
  • 2022年最新公务员职务职级对照表
  • 财务费用的增加记在哪一方
  • 未分配利润是负数是亏损吗
  • 补发工资账务处理
  • 个人所得税专项附加扣除标准一览表
  • 财务报销中的冲销是啥意思
  • css的flex:1
  • 出口退税率为0要补增值税吗
  • 租赁公司一般都有什么税
  • 美金账户余额截图
  • 三免三减半如何申报
  • 社保缴费基数应该怎么算
  • 不动产租赁服务包括哪些
  • 增值是什么意思解释
  • 出口免税进项税怎么处理
  • 固定资产加速折旧最新政策2022
  • 已认证的增值税专用发票退票
  • 挂靠工程如何交纳税金帐务处理?
  • 以融资租赁形式的车贷没还上可以拖车吗
  • 应付账款可以用现金支付吗
  • 专票和普票的作用
  • 业务招待费可以结转下年抵扣吗
  • 苹果macOS 14 正式发布
  • xp系统1
  • kdeskcore.exe是什么
  • RunClubSanDisk.exe是什么程序? 闪迪U盘广告推介程序
  • windows怎么拨号
  • xp怎么删除电脑系统
  • 如何避免升级为查帐征收
  • win10下安装office2007
  • win10预览版绿屏重启解决
  • win7笔记本触摸板怎么开启
  • bootstrap paginator分页插件的两种使用方式实例详解
  • opengl示例
  • 安卓图片缓存太占空间
  • shell循环结构
  • wmic命令详解
  • python读json文件和写json文件
  • jquery form serialize
  • three.js入门教程(合集)
  • 如何用python写自动化脚本
  • 国家税务发票查验平台手机怎么查
  • 游艇车船税怎么收
  • 2020十大经济年度人物揭晓
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设