これを修正するには、デバイスが網膜の場合、UIGraphicsBeginImageContextの代わりにUIGraphicsBeginImageContextWithOptionsを使用します。次に、コンテキストのスケールをmainScreenスケールに設定します。
+ (UIImage *)nowPlayingButton {
    UILabel * addCustomLabel = 
            [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 25)];
    addCustomLabel.text = 
        NSLocalizedString(@"NOW_PLAYING_NEWLINE", 
                          @"Now playing text divided on two lines");
    addCustomLabel.textColor = [UIColor whiteColor];
    addCustomLabel.font = [UIFont boldSystemFontOfSize:10];
    addCustomLabel.numberOfLines = 2;
    addCustomLabel.backgroundColor = [UIColor clearColor];
    addCustomLabel.textAlignment = UITextAlignmentCenter;
    CGSize size = addCustomLabel.bounds.size;
    static CGFloat scale = -1.0;
    UIScreen *screen = [UIScreen mainScreen];
    scale = [screen scale];
    if(scale > 0.0) {
        UIGraphicsBeginImageContextWithOptions(size, NO, scale);
    } else {
        UIGraphicsBeginImageContext(size);
    }
    CGContextRef context = UIGraphicsGetCurrentContext();
    [addCustomLabel.layer renderInContext: context];
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    CGContextRelease(context);
    return img;
}