UE-- 引入IOS framework 库 真机运行闪退
事请是这样的
我编写了一个插件 里面是 调用IOS原生代码的
obj-c与swift混编
我从Xcode编写了一个framework库(动态库)
然后放入ue进行引用
正常的打包出来了 ipa 文件
结果真机运行报错了
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: DYLD 1 Library missing
Library not loaded: @rpath/Pay_SDKLib.framework/Pay_SDKLib
说没有动态库 我在ue 的 cs文件 弄了半天 不行以后
我决定找另一条路子
gpt突然告诉了这个
我直接解压.ipa 文件 (先把后缀名修改为.zip)
然后根据这个路径直接把Xcode中编译出来的文件 复制过去
Frameworks/Pay_SDKLib.framework
然后先成压缩.zip 然后改尾缀为.ipa
安装到ios真机上 跑起来了!
后先成压缩.zip 然后改尾缀为.ipa
安装到ios真机上 跑起来了!
2024.9.23 更新
现在可以通过ue的UPL语言进行复制过去
方法如下
1、创建一个.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<root >
<init>
<log text="UPL start...."/>
</init>
<trace enable="true"/>
<iosPListUpdates>
<addElements tag="dict" once="true">
<key>NSAppleMusicUsageDescription</key>
<string>文件访问,我们需要文件读写权限以达到软件必要的标志存储</string>
<key>NSCameraUsageDescription</key>
<string>我们需要访问您的相机,以便让您拍摄照片和视频。请不要担心我们并没有使用到相</string>
<key>NSFileProtectionComplete</key>
<string>我们需要进行加密存储标志 </string>
<key>LSMinimumSystemVersion</key>
<string>12.0</string>
</addElements>
<copyDir src="$S(PluginDir)/../ThirdParty/IOS/Lib"
dst="$S(BuildDir)/Frameworks" />
</iosPListUpdates>
<init>
<log text="UPL End"/>
</init>
</root>
其中
<copyDir src="$S(PluginDir)/../ThirdParty/IOS/Lib"
dst="$S(BuildDir)/Frameworks" />
copyDir 其实就是复制文件夹
$S(BuildDir) 是编译完输出后的 软件名.app 里面的根目录位置 (就是.ipa 解压完时进去的路径)
复制到的位置
$S(PluginDir) .xml 文件所在的位置 ( $S(PluginDir) = 加载XML文件的目录)
注意路径结构
目录结构
看看我们cs文件怎么写的
下一期 我们会说 简单的 framework 库怎么使用xcode 编译
参考
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/module-properties-in-unreal-engine