由于公司需要将软件发到苹果商城,所以开始打 IOS 包。以下为打包过程中遇到问题的记录。留备以后查看。


软件环境

Windows 端:

  • Win10
  • Unity 2019.2.9f1
  • TortoiseSVN

Mac 端:

  • mac OS big Sur 11.6
  • XCode 13.2.1
  • Cornerstone

目前是采用从 Windows 端的 Unity 打出 Xcode 工程包,然后通过 SVN 传到 Mac 端再出包的流程。

其中参考文章如下:

  • iOS 理解证书与描述文件
  • iOS证书(.p12)和描述文件(.mobileprovision)申请
  • Unity打包IOS应用程序
  • Unity3D打包(IOS)IPA详细教程

1、记录一些 Unity 和 XCode 的设置

注意:以下一些配置的位置和名称可能会根据 Unity 和 XCode 版本的变动而有所变动。

Unity:
Scripting Backend:选 IL2CPP,因为需要支持 64 位,新版的 Unity 在切换成 XCode 时默认就是 IL2CPP
Api Compatibility Level:不要选子集,避免 dll 引用出问题
Auto Graphics API:不勾选,摒弃掉 matel 渲染,只留 OpenGLES2
Architerctures:修改为 Universal,表示同时支持 32 位,64 位架构XCode:
Architerctures:设置为 Standard architectures,因为 32 位程序已经被苹果强制淘汰了
Capabilites->Background modes:设置问 ON,并勾选 remote notifications
Product->Scheme->Edit Scheme->run:将 “GPU Frame Capture” 设置为 Opengl ES
Build Settings->Enable Bitcode:设为 NO,否则所有第三方库都需要支持 bitcode

下面主要记录 XCode 端相关问题

2、 library not found for -liPhone-lib 问题

“library not found” 类问题都是没有找到相关 lib 引用导致的,比较可能的情况是引用的地址出现问题。
常见的修改方式是进入 Targets->Build Settings->Library Search Paths 中将 “$(SRCROOT)/Librarie” 的双引号去掉变成 $(SRCROOT)/Librarie

但是我使用了此方法并没有奏效,之后通过 Library Search Paths 中列出的地址找到了引用目录,在经过 Windows 端和 Mac 端的同名文件夹对比后发现是由于 Windows 端的两个 lib 文件不知何故并没有成功上传,所以导致 Mac 端确实没有这两个 lib 文件。
将文件重新标记上传和下载后,问题解决。

3、Command PhaseScriptExecution failed with a nonzero exit code 问题

进入 XCode 的 File->Project Setting 中
将 Shared Project Settings->Build System 调整为 Legacy Build System (Deprecated)
虽然这个已经说要被淘汰了,但是不用这个就报错,小白表示很郁闷。


至此,在 Build 时的问题都解决了。但是下面的问题是竟然无法直接发布到真机上进行测试。(当然真机已经加入了苹果测试机型中)

4、xcode unable to install “打包的程序名称” 问题

根据网上看到的方法:

将 File->Project Setting 中的 Per-User Project Settings->Build System 改为 Legacy Build System (Deprecated)

这之后遇到了一个权限问题:Permission denied
解决方法是:打开终端,输入命令 sudo chmod -R 777 工程根目录

经过一番折腾以后结果还是没有解决。
最后看到了这篇文章。
原文如下:

It is a very hot issue with the new update of Catalina. To be very precise the issue is with the manually signing of the provisioning profile. If you check Automatically manage signing it works.

也就是说,在 Targets->Signing&Capabilities 中勾选 Automatically manage signing 就可以了。
使用后发现这个解决方案可以解决我遇到的问题。

5、关于证书的选择

证书选择不当可能会导致在真机测试时无法成功出包。
在 PROJECT 和 TARGETS 中的 Build Settings 页签里,找到 code signing identity 选项。
调试时统一选为 developer,发布时统一选为 distribution 。

出包成功。


PS: 此次记录的只是单独出游戏 iOS 包的相关步骤,而如果需要在项目中添加其他诸如 admob sdk 之类的插件则上面的第 2、3 步就不需要了,而是进行其他各种新的操作和配置。

Unity 打包对接 XCode 记录相关推荐

  1. 【Unity开发小技巧】Unity打包IOS端APP

    目录 一:安装IOS的模块并打包 1.Hub可以添加IOS模块 2.项目内部下载安装ISO模块 3.添加我们需要打包的场景 二:XCode工程内部设置并打包 1.mac商店安装XCode软件并打开xc ...

  2. unity打包xcode,在iOS11设备调试报错

    unity版本:5.4.5p5 Xcode版本:Xcode9 iOS版本:ios11 unity打包xcode,进行调试状态下报错: validateRenderPassDescriptor:551: ...

  3. 【Unity3D日常BUG记录】Unity打包运行出现:PlatformNotSupportedException该平台不支持此操作的解决记录

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  4. 使用Unity打包Assetbundle填坑记录(随时更新)

    Unity版本=2017.4.13f1 问题1: Cannot mark assets and scenes in one AssetBundle 出现原因:使用Unity 打包场景文件为AssetB ...

  5. Unity打包Ios相关权限和麦克风延迟问题的一种解决办法

    Unity打包Ios相关权限和麦克风延迟问题 Hello 大家好我又来填坑了 问题一:调用 Microphone.Start()方法的时候主线程明显卡顿 问题二:IOS使用麦克风时声音不会从扬声器里发 ...

  6. Unity AssetBundle 踩坑记录

    Unity AssetBundle 踩坑记录 editor 下选择什么平台的 ab 加载 Material doesn't have a color property '_Color' UnityEd ...

  7. unity打包Android的APK

    最近电脑重装了一下,下载了Unity2018.4.0之后发现没有了JDK的配置选项,之前要打包Android的APK,需要配置JDK和SDK,现在的版本没了JDK的配置,虽然没有了配置选项,并不是不需 ...

  8. Unity 打包出的iOS 游戏 图片质量(Alpha)下降的问题

    Unity打包出来的iOS游戏发现边角处有白色描边,在切换场景时还会出现瞬间的白屏. 可见,虽然不太明显.仔细看的话圆角处会有一个弧形白边 只有圆角处有白边,这应该是Alpha通道出了问题.于是我在网 ...

  9. unity打包实现对dll加密

    Unity 打包后防破解 DLL加密 前言:之前有个活,需要将公司的unity程序进行加密.本来想使用混淆插件进行简单的混淆,后来发现有问题所以选择dll加密.期间碰到很多坑,记录一下. 1.加密方案 ...

  10. Unity打包IOS 发布app商城

    Unity打包 Xcode工程, 如果是Windows 系统打包出的Xcode 工程, 会有意想不到的权限错误, 需要在mac终端上执行 chmod +x /路径 给Process_symbols.s ...

最新文章

  1. 如何使用JPA注解标注多对多的关系
  2. 从exp入手分析漏洞
  3. AnyChat Server SDK与SDK Filter Plus有何差异?
  4. JZOJ 5602. 【NOI2018模拟3.26】Cti JZOJ 5057. 【GDSOI2017模拟4.13】炮塔
  5. uImage和zImage的区别
  6. WebSocket 详解教程
  7. git常用命令常用场景
  8. NWT失败反省:说别人脑子进水了,汝脑子有没有进水?
  9. 使用think_queue实现未支付订单半小时取消
  10. 读取本地文件assets内容
  11. robotium android,Robotium 测试Android apk安装包
  12. http://www.boobooke.com/bbs/thread-51022-1-1.html
  13. 桌面应用开发技术对比
  14. 剪辑视频的软件怎么二次剪辑才算原创
  15. oracle database各个版本地址
  16. Linux命令行下使用飞信
  17. AIS 2019(ACL IJCAI SIGIR)论文研讨会研究趋势汇总
  18. 单片机的组成以及分类和指标
  19. 关于nbsp的一点笔记
  20. 如何增加自动化测试面试通过率?学会以下几点offer增加50%

热门文章

  1. Java实现简单的文本编辑器
  2. 基于java的网上书店系统设计(含源文件)
  3. 基于单片机的电子琴设计和硬件平台设计
  4. C程序设计语言——基础概念
  5. 怎么利用计算机辅助评标,计算机辅助评标系统及其的应用.doc
  6. SAP License:ERP项目升级评标会偶遇以前同事感慨
  7. 希赛网软考学院将会使系分大大贬值
  8. 计算机组成原理问题集合
  9. php wind8.5,PHPWind 8.5 正式版源码下载
  10. VISIO2003基本形状