Why PhysicsBody::addShape() doesn't work while PhysicsBody::createBox() works

I have spent hours to figure out why my physics world doesn’t work. Finally I found the root piece of code.

Below piece of code doesn’t work :
auto ground_body = PhysicsBody::create();
ground_body ->setContactTestBitmask(0xffffffff);
ground_body ->addShape(PhysicsShapeBox::create(Size(width, height)));

Below piece of code works :
auto ground_body = PhysicsBody::createBox(Size(width, height));
ground_body ->setContactTestBitmask(0xffffffff);

Any one has clue why? Thanks !