Я пытаюсь программно изменить фоновый рисунок главного экрана и экрана блокировки.До сих пор я видел много блогов и постов, таких как:
- Программная настройка фона iOS / изображения экрана блокировки?
- https://www.reddit.com/r/jailbreakdevelopers/comments/24uyr6/which_private_framework_and_methods_set/
- Обрезка / масштабирование не работает при установке обоев iOS с использованием частной платформы PhotoLibrary
- Обработка частных рамок в Xcode ≥ 7,3
- Как установитьБлокировка экрана, обоев и рингтона программно в iPhone?
Ничего не работает из всего вышеперечисленного.Вот что я попробовал до сих пор:
NSString *path;
#if TARGET_OS_SIMULATOR
path = @"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/PhotoLibrary.framework";
#else
path = @"/System/Library/PrivateFrameworks/PhotoLibrary.framework";
#endif
NSBundle *bundle = [NSBundle bundleWithPath:path];
[bundle load];
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
// Instantiate the controller.
id class = NSClassFromString(@"PLStaticWallpaperImageViewController");
id controller = [[class alloc] performSelector:@selector(initWithUIImage:) withObject:image];
// Select what wallpaper mode.
// 0 - Both lock screen and home screen.
// 1 - Home screen only.
// 2 - Lock screen only.
int wallpaperMode = 0;
[controller setValue:@(wallpaperMode) forKey:@"wallpaperMode"];
// Tell the controller to save the data.
[controller setValue:@YES forKey:@"isWallpaperEdit"];
[controller setValue:@YES forKey:@"saveWallpaperData"];
// Save the photo.
[controller performSelector:@selector(_savePhoto) withObject:nil];
[controller performSelector:@selector(setWallpaperForLocations:) withObject:@(wallpaperMode)];
#pragma clang diagnostic pop
Я знаю, что Apple не одобрит это, но мне все равно.
Любая помощь приветствуется.