Possible problem one
This is caused by a pretty central concept that does sometimes crop up. It more commonly a problem in video production but its also good to know when isolating objects form background.
There is no such thing as a transparent pixel. There is only a color and how transparent that pixel is. When you cut color out to form the alpha its contaminated by the matte fringe. So if you have a pixel with 50% black and 50% white and cut it out so its 50% transparent it is still 50% black. This is not visible in all conditions but it is a problem.
So in addition to masking you need to remove the contaminant color from the layer. Now there are tools that do this in the in Layer → Matting sub menu. The different tools use different methods. Whichever is better is up to you and the situation at hand. It is also possible to do this calculation manually for an example why you'd do this see this post.
##Possible problem two
Possible problem two
If you extract assets with PNG-8 option then your PNG does not have a full alpha channel. Thus the fringe has to be put in as there is only indexed colors but only one level of transparency. While the PNG standard as understood by browsers does indeed make it possible to have 8 bit PNG files with multi level alpha, Adobe does not support this. So youy still need to crunch the images with a external tool.