Skip to content

Commit f8e26cf

Browse files
committed
update 2023-04-07-XUPorter和Unity 2019.3及以上版本冲突问题详解
1 parent d9c12ff commit f8e26cf

File tree

5 files changed

+61
-0
lines changed

5 files changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
3+
layout: post
4+
5+
title: XUPorter和Unity 2019.3及以上版本冲突问题详解
6+
7+
tags: [unity]
8+
9+
Author: Steve.liu
10+
11+
---
12+
13+
最近遇到了Unity上的一些问题,两年前处理过,后来忘记了,最近又重头分析处理了一边,随手记录一下吧
14+
15+
## 一、XUPorter简介
16+
17+
[github地址](https://github.com/onevcat/XUPorter)
18+
[博客地址](https://onevcat.com/2012/12/xuporter/)
19+
20+
XUPorter是喵神Onevcat编写的Unity插件,主要用于读取Xcode工程文件并进行解析,之后在Unity工程的Assets目录下寻找所有的.projmods文件,并根据文件内容向工程中添加文件或库。
21+
22+
整体工作流程
23+
24+
- Unity导出Xcode工程
25+
- Xcode工程调用Cocoapods开始下载配置第三方库
26+
- XUPorter读取并缓存Xcode工程配置为XCProject对象 new XCProject
27+
- XUPorter读取预设配置,并加入XCProject对象中
28+
- XUPorter将预设配置对象XCProject覆写到Xcode工程中 project.Save()
29+
30+
流程如下所示:
31+
32+
![图片](../images/unityXUporter/1.png)
33+
34+
## 二、Unity 2019.3
35+
36+
在Unity 2019.3以后,unity对项目结构进行了修改
37+
38+
每个生成的 Unity iOS Xcode 项目都具有以下结构和目标:
39+
40+
- Unity-iPhone : Unity-iPhone目标中的一个瘦启动器部分。它包括MainApp文件夹和应用程序表示数据,如启动屏幕、.xib文件、图标、数据和/Info.plist文件,并运行库。Unity -iPhone目标对UnityFramework目标只有一个依赖项。
41+
- UnityFramework : UnityFramework目标中的库部分。它包括Classes、UnityFramework和Libraries文件夹,以及依赖框架,Xcode 使用它来构建UnityFramework.framework文件。
42+
43+
![图片](../images/unityXUporter/2.png)
44+
45+
其中 Unity-iPhone 对 UnityFramework 的依赖是通过 Unity-iPhone 的 Build Phases 中的 Target Dependencies 来实现的,如下所示:
46+
47+
![图片](../images/unityXUporter/3.png)
48+
49+
50+
## 三、冲突原因
51+
52+
XUPorter是一个比较老的库,在Unity3.5时期开发的,无法预见到Unity后期项目结构调整。
53+
54+
XUPorter在上述所说的这两步操作中
55+
56+
- new XCProject时,并未将项目Unity-iPhone的Target Dependencies读取
57+
- project.Save()时; 将上一步没有读取到Target Dependencies的Unity-iPhone配置覆写到Unity-iPhone中
58+
59+
导致在XUPorter操作之后,将Target Dependencies置为空,也就导致了Unity-iPhone 对 UnityFramework 的依赖中断
60+
61+
![图片](../images/unityXUporter/4.png)

images/unityXUporter/1.png

155 KB
Loading

images/unityXUporter/2.png

86.2 KB
Loading

images/unityXUporter/3.png

41.6 KB
Loading

images/unityXUporter/4.png

573 KB
Loading

0 commit comments

Comments
 (0)