Unity 打包对接 XCode 记录 您所在的位置:网站首页 打包unity Unity 打包对接 XCode 记录

Unity 打包对接 XCode 记录

2023-03-26 10:53| 来源: 网络整理| 查看: 265

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

软件环境

Windows 端:

Win10Unity 2019.2.9f1TortoiseSVN

Mac 端:

mac OS big Sur 11.6XCode 13.2.1Cornerstone

目前是采用从 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 步就不需要了,而是进行其他各种新的操作和配置。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有