Here is a sample hybrid extensions directory structure.

At first, you need to package your extensions ui(not include plugin).
Make mxi file like below.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<macromedia-extension id="net.sytes.chuwa.ScriptSlotsui" name="Script Slot" requires-restart="true" version="1.0.2">
<author name="Ten A"/>
<description/>
<license-agreement/>
<products>
<product familyname="Illustrator" maxversion="22.9" version="18.0"/>
</products>
<files>
<file destination="" file-type="CSXS" products="" source="ScriptSlotUI.zxp"/>
<file destination="$plugin/extensions" maxVersion="22.9" minVersion="18.0" platform="mac" products="Illustrator" shared="true" source="plugin/mac/ScriptSlots.aip"/>
<file destination="$plugin/Extensions" maxVersion="22.9" minVersion="18.0" platform="win" products="Illustrator64" shared="true" source="plugin/win/x64/ScriptSlot.aip"/>
</files>
</macromedia-extension>
And package again using ZXPSignCMD.
ex:
ZXPSignCmd -sign MXI net.sytes.chuwa.ScriptSlot.zxp <certfile> <cert_password> -tsa <timestamp_server>