UE4 编译Editor的大坑

1.遇到了UE的坑在编译UE项目的时候是不能用平台宏的,例如#if defined(PLATFORM_ANDROID)之类的,虽然是在Mac上编译,他还是会走到这些平台宏里面去。而且报错非常奇葩,根本想不到是平台宏的问题。

UE4 编译Editor的大坑_第1张图片

目前是先把移动平台相关代码注释掉,等编译通过了,再打开注释。。


2.使用命令行编译出包的时候,需要先构建UEEditor才可以导出移动平台的包。而构建UEEditor时,要先cd到UE的安装目录才可以,否则会报路径出错。

下面是具体的构建脚本

export Android_SDK="/data/soda/apps/ANDROIDSDK_LINUX_R21"
export NDK_PATH="/data/soda/apps/ndk/android-ndk-r12"
export UE4_PATH="/Users/soda/UnrealEngine-4.18.0-release/Engine/Build/BatchFiles/RunUAT.sh"
# 获取sh文件路径
basepath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# UE工程路径
project=${basepath}"/UE4/xx.uproject"
# 包输出临时路径
package=${basepath}"/package"

echo $basepath
echo $package


# 存放最终结果
result=${WORKSPACE}/result
bin=${WORKSPACE}/bin

#构建编辑器
cd /Users/soda/UnrealEngine-4.18.0-release
sh ./Engine/Build/BatchFiles//Mac/Build.sh xxEditor Mac Development $project


# 构建Android包
#sh $UE4_PATH BuildCookRun -ScriptsForProject=$project -compile -nocompileeditor -nop4 -project=$project -cook -stage -archive -archivedirectory=$package -package -clientconfig=Shipping -ue4exe=UE4Editor -compressed -SkipCookingEditorContent -prereqs -nodebuginfo -targetplatform=ANDROID -build -utf8output 
# 构建iOS包
sh $UE4_PATH BuildCookRun -ScriptsForProject=$project -compile -nocompileeditor -nop4 -project=$project -cook -stage -archive -archivedirectory=$package -package -clientconfig=Shipping -ue4exe=UE4Editor -compressed -SkipCookingEditorContent -prereqs -nodebuginfo -targetplatform=IOS -build -utf8output 

#cp $package/Android/*.apk $result
#拷贝ipa到下载列表
cp $package/IOS/*.ipa ./result
#拷贝符号表到下载列表
cp ${basepath}/UE4/xx/Binaries/IOS/*.dSYM.zip ./result


你可能感兴趣的:(UE4)