使用tweak编写一个插件在运行后截图,为什么这个保存出来是黑屏的图呢

//这里因为我需要全屏接图所以直接改了,宏定义iPadWithd为1024,iPadHeight为768,
//    UIGraphicsBeginImageContextWithOptions(CGSizeMake(640, 960), YES, 0);     //设置截屏大小
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(iPadWidth, iPadHeight), YES, 0);     //设置截屏大小
    [[self.view layer] renderInContext:UIGraphicsGetCurrentContext()];  //self.view layer 这个在tweak里怎么定义的啊- - - 。。
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    CGImageRef imageRef = viewImage.CGImage;
//    CGRect rect = CGRectMake(166, 211, 426, 320);//这里可以设置想要截图的区域
    CGRect rect = CGRectMake(0, 0, iPadWidth, iPadHeight);//这里可以设置想要截图的区域
    CGImageRef imageRefRect =CGImageCreateWithImageInRect(imageRef, rect);
    UIImage *sendImage = [[UIImage alloc] initWithCGImage:imageRefRect];
    UIImageWriteToSavedPhotosAlbum(sendImage, nil, nil, nil);//保存图片到照片库
    NSData *imageViewData = UIImagePNGRepresentation(sendImage);
    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pictureName= [NSString stringWithFormat:@"screenShow_%d.png",ScreenshotIndex];
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:pictureName];
    NSLog(@"截屏路径打印: %@", savedImagePath);

    [imageViewData writeToFile:savedImagePath atomically:YES];//保存照片到沙盒目录
    CGImageRelease(imageRefRect);
    ScreenshotIndex++;

截屏操作时App时位于前台运行吗?
也可以试试这个帖子里的截屏方法

狗神.我参考了你给我的帖子里的截图方法,第5中方法直接就程序退出,第6种的话报
error: unknown type name ‘IOCoreSurfaceAcceleratorRef’; did you mean ‘CoreSurfaceAcceleratorRef’?
IOCoreSurfaceAcceleratorRef outAcc;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
CoreSurfaceAcceleratorRef

头文件也是从那个包内下载的 请问下 我这个怎么解决呢?

应该是私有函数吧,用dlopen或者extern声明一下

请问一下楼主解决了吗?我也遇到了同样的问题!

这个帖子里的底层截屏函数ios9开始就已经无效了

今天自己整出来了,有需要的朋友可以看一下