Just wanted to weigh in with what the problem is/was...
Did you know XCode will take your png and modify it? As part of the modification process, it premultiplies the alpha. That's why this was happening. I don't see any real way around it but to include pnglib in my project, or stop using pngs.
I've been programming for 20 years and this is the most infuriating thing I've ever seen. The idea that they would MODIFY the data you're including in the bundle... and worse, they don't give you a way to turn it off. There's notes on the web on how to turn it off, but none of them actually work.