Though there is no solution now, however, really grateful to Mario and Nate for replay.
Besides, I found there is a way to disable PMA when read png with cocos2d-x.
Image::setPNGPremultipliedAlphaEnabled(false);
and keep
CC_ENABLE_PREMULTIPLIED_ALPHA = 1
This code can do perfectly to premultiplied-alpha files, but with cocos2d-objc, I still cannot fix the border.
But I found there are some discussion about how to load image without premultiply, they used libpng
to load image instead of using cgimage. (Cocos2d-x uses this library to load image as well.)
Anyway, there is no solution for now with cocos2d-objc. I will reply on this post if I find any way to solve this issue.