I have been troubled by this for a while, and this is my final solution:
A Python script replace emoji with images: https://gist.githubusercontent.com/fengchang/885365a6e0c95dc54aeacc328ae31d29/raw/b1d7880e17a3d762ca2879d6bce3e73623318b5d/md2pdf.py
The emoji images are download from here: https://github.com/iamcal/emoji-data
If Apple emoji not available, it will try download Twemoji instead.
The script also fix other markdown issues, like list must have an empty line. with other pandoc parameters I like.