当前位置: 首页 > article >正文

UE4 iOS Package的过程与XCode工程中没有游戏Content的原因

疑问

我观察XCode工程时,没有看到包含游戏Content或Content的Pak,为此研究代码

Package流程示意图

下面是若干步骤的解释:

(40)日志见:

文档:子页: IOSPlatform.PrepForUATPackage...
链接:http://note.youdao.com/noteshare?id=87cdc572b0d70725e25d3980abc302d2
不是重点

(41)就我的工程来说,这一步骤发生拷贝的文件类型只有:

png
txt
caf
plist
nib
csv
.bundle/_CodeSignature/CodeResources
.bundle/_CodeSignature/CodeDirectory
.bundle/_CodeSignature/CodeRequirements-1
.bundle/_CodeSignature/CodeSignature
.bundle/_CodeSignature/CodeRequirements
strings
nn
bin
json
aiff
xcprivacy
DS_Store
metallib
h
modulemap
pak


(60)对应日志:

2024-10-23 12:44:02:631 : Project: /Users/bkdevops/项目/项目/项目_IOS.xcworkspace
2024-10-23 12:44:02:633 : Running: /Users/bkdevops/项目/EngineSource/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh -project="/Users/bkdevops/项目/项目/项目.uproject" -platforms=IOS -game -nointellisense -IOSdeployonly -ignorejunk -projectfileformat=XCode -includetemptargets

(61)日志:

Running: /usr/bin/env UBT_NO_POST_DEPLOY=true /usr/bin/xcrun xcodebuild build -workspace "/Users/bkdevops/项目/项目/项目_IOS.xcworkspace" -scheme '项目' -configuration "Test Client" -destination generic/platform=iOS -sdk iphoneos CODE_SIGN_IDENTITY="iPhone Developer: Created via API (xx)" PROVISIONING_PROFILE_SPECIFIER=xx
2024-10-23 12:44:18:562 :   Command line invocation:
2024-10-23 12:44:18:563 :       /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild build -workspace /Users/bkdevops/项目/项目/项目_IOS.xcworkspace -scheme 项目 -configuration "Test Client" -destination generic/platform=iOS -sdk iphoneos "CODE_SIGN_IDENTITY=iPhone Developer: Created via API (xx)" PROVISIONING_PROFILE_SPECIFIER=xx

文档:子页:xcodebuild build的关键日志.not...

链接:http://note.youdao.com/noteshare?id=41de6ee6fd05f7635a62327535cb87ed

.app文件夹的构成

首先,打开 .app ,如下图所示,它的位置在 项目/Binaries/IOS/Payload 中。

然后我们来认识两类文件:

第一类文件:与“项目”同名的无后缀Unix可执行文件

这类文件仅一个。实践发现,它是xcodebuild build后产生的,见前文步骤(61)。

这个文件的类型是 Unix可执行文件,它是代码的入口,也是代码的主要部分(除去动态链接库以外)。

第二类文件:Framework等需要CodeSign的文件

它们的来源是:拷贝而来 + 签名。拷贝的动作见“第三类文件”中的阐述。

第三类文件:第一类文件、第二类文件以外的文件

包括资源、plist、动态链接库等。它们的来源和XCode无关,它们是拷贝而来的。发生在 步骤(41)中。

接下来我们看下如何从.app到.ipa。

从.app得到.ipa

这里由 (43)步骤IOSPlatform.PackageIPA() 得到,做法很简单,就是经过(可能有加密)zip,zip一下就得到 .ipa 了。Zip操作以前,资源文件、代码等,在.app中都已经就绪,如上一小节所说的那样。

解答

XCode工程中只包含配置、代码。如下图所示:

它不包含游戏Content或Content的Pak,其实是因为在Payload的.app中,已经包含了。只需要xcodebuild build 后,就可以得到 .ipa 了。


http://www.kler.cn/a/412586.html

相关文章:

  • 使用 Python 的 pdfplumber 库高效解析 PDF 文件
  • 【AI】Jetson Nano烧写SD卡镜像:Ubuntu20.04
  • 多输入多输出 | Matlab实现TCN-GRU时间卷积神经网络结合门控循环单元多输入多输出预测
  • vscode的markdown扩展问题
  • ubuntu 安装 docker 记录
  • testImplementation和androidTestImplementation区别
  • C++学习日记---第12天(函数重载+蓝桥杯基础题)
  • 【C语言篇】从字符海洋到整数大陆——atoi 的探险之旅
  • 服务器记录所有用户docker操作,监控删除容器/镜像的人
  • ByConity ELT 测试体验
  • 【Agorversev1.1数据转换】Agorverse高清地图转OpenStreetMap及SUMO路网
  • 第29天:安全开发-JS应用DOM树加密编码库断点调试逆向分析元素属性操作
  • 【文献阅读】自动化构音障碍严重程度分类:声学特征与深度学习技术的研究
  • Vuex中通过action触发mutation是为什么?[AI]
  • BERT的配置
  • 消息队列实战指南
  • uni-app 自定义平台如何进行 static 目录的条件编译
  • 排序算法之插入排序篇
  • NestJS中使用useClass注入
  • 【ubuntu24.04】hnsw liblibstdc++.so.6: version GLIBCXX_3.4.32‘ not found
  • 【docker集群应用】Docker网络与资源控制
  • vscode中json文件的注释飘红
  • 实现跨语言通信:Rust 和 Thrift 的最佳实践
  • Python初始化变量
  • CodeIgniter中的重映射方法调用
  • 如何借助AI生成PPT,让创作轻松又高效