Unable to submit a binary plugin without .cpp files

Hello,

I have a plugin developed in C++ for the UE5 marketplace (now Fab). Previously, I distributed the plugin with the source code included. However, for various reasons, I now wish to distribute it solely in binary format.

To do this, I normally package my plugin, then I delete the .cpp files, leaving only the binary and .h files. I then add the following line in the Build.cs file: bUsePrecompiled = true;. Everything works correctly, and I can include the plugin in C++ and Blueprint projects, with successful builds.

However, when I submit my plugin to Epic Games, I feel like they still try to recompile it using the source code with the command Engine\Build\BatchFiles\RunUAT.bat BuildPlugin, which causes my submission to fail with LNK2001 and LNK2019 errors. It seems that these errors mainly concern methods with the BlueprintCallable and BlueprintNativeEvent macros, as well as the virtual methods I override. Methods without macros do not seem to have any issues.

Is it possible to distribute a package on the marketplace only in binary form, without the .cpp files, or is that not allowed?

Here are some examples of the errors I’m getting:

Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl AAMS_Character::CanSlide_Implementation(void)const " (?CanSlide_Implementation@AAMS_Character@@UEBA_NXZ)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl AAMS_Character::CanSprint_Implementation(void)const " (?CanSprint_Implementation@AAMS_Character@@UEBA_NXZ)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl AAMS_Character::CanMoveOnGround_Implementation(struct UE::Math::TVector2)const " (?CanMoveOnGround_Implementation@AAMS_Character@@UEBA_NU?$TVector2@N@Math@UE@@@Z)
Module.Parkour.cpp.obj : error LNK2019: unresolved external symbol “public: __cdecl AAMS_Character::AAMS_Character(void)” (??0AAMS_Character@@QEAA@XZ) referenced in function “void __cdecl InternalConstructor(class FObjectInitializer const &)” (??$InternalConstructor@VAAMS_Character@@@@YAXAEBVFObjectInitializer@@@Z)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol “protected: virtual void __cdecl AAMS_Character::BeginPlay(void)” (?BeginPlay@AAMS_Character@@MEAAXXZ)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl AAMS_Character::GetLifetimeReplicatedProps(class TArray<class FLifetimeProperty,class TSizedDefaultAllocator<32> > &)const " (?GetLifetimeReplicatedProps@AAMS_Character@@MEBAXAEAV?$TArray@VFLifetimeProperty@@V?$TSizedDefaultAllocator@$0CA@@@@@@Z)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol “public: virtual void __cdecl AAMS_Character::Tick(float)” (?Tick@AAMS_Character@@UEAAXM@Z)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol “public: virtual void __cdecl AAMS_Character::SetupPlayerInputComponent(class UInputComponent *)” (?SetupPlayerInputComponent@AAMS_Character@@UEAAXPEAVUInputComponent@@@Z)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol “public: virtual void __cdecl AAMS_Character::OnMovementModeChanged(enum EMovementMode,unsigned char)” (?OnMovementModeChanged@AAMS_Character@@UEAAXW4EMovementMode@@E@Z)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol “public: virtual void __cdecl AAMS_Character::OnStartCrouch(float,float)” (?OnStartCrouch@AAMS_Character@@UEAAXMM@Z)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol “public: virtual void __cdecl AAMS_Character::OnEndCrouch(float,float)” (?OnEndCrouch@AAMS_Character@@UEAAXMM@Z)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol “public: virtual void __cdecl AAMS_Character::PossessedBy(class AController *)” (?PossessedBy@AAMS_Character@@UEAAXPEAVAController@@@Z)
Module.Parkour.cpp.obj : error LNK2001: unresolved external symbol “public: virtual void __cdecl AAMS_Character::OnRep_ReplicatedMovement(void)” (?OnRep_ReplicatedMovement@AAMS_Character@@UEAAXXZ)

Thank you in advance for your help!