Unreal 4.27.2 source code version + Rider 2023.1 + MacbookPro 2023(M2 Max) + macOS Ventura 13.3.1(a).
When we use the PhysX library, two typical errors are as follows:
UATHelper: Packaging (iOS): Undefined symbols for architecture arm64:
UATHelper: Packaging (iOS): "PxCreateCooking(unsigned int, physx::PxFoundation&, physx::PxCookingParams const&)", referenced from:
UATHelper: Packaging (iOS): fatal error: 'PhysXSDKVersion.h' file not found
UATHelper: Packaging (iOS): #include "PhysXSDKVersion.h"
UATHelper: Packaging (iOS): ^~~~~~~~~~~~~~~~~~~
PackagingResults: Error: 'PhysXSDKVersion.h' file not found
Solution:
Remove the comment of "PhysX3Cooking{0}"
in the ios part of PhysX.Build.cs
.
// before
else if (Target.Platform == UnrealTargetPlatform.IOS)
{
string[] PhysXLibs = new string[]
{
"LowLevel{0}",
"LowLevelAABB{0}",
"LowLevelCloth{0}",
"LowLevelDynamics{0}",
"LowLevelParticles{0}",
"PhysX3{0}",
"PhysX3Common{0}",
//"PhysX3Cooking{0}", // not needed until Apex
"PhysX3Extensions{0}",
"SceneQuery{0}",
"SimulationController{0}",
"PxFoundation{0}",
"PxTask{0}",
"PxPvdSDK{0}",
"PsFastXml{0}"
};
// after
else if (Target.Platform == UnrealTargetPlatform.IOS)
{
string[] PhysXLibs = new string[]
{
"LowLevel{0}",
"LowLevelAABB{0}",
"LowLevelCloth{0}",
"LowLevelDynamics{0}",
"LowLevelParticles{0}",
"PhysX3{0}",
"PhysX3Common{0}",
"PhysX3Cooking{0}", // not needed until Apex
"PhysX3Extensions{0}",
"SceneQuery{0}",
"SimulationController{0}",
"PxFoundation{0}",
"PxTask{0}",
"PxPvdSDK{0}",
"PsFastXml{0}"
};