Изменить обои главного экрана iOS программно - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь программно изменить фоновый рисунок главного экрана и экрана блокировки.До сих пор я видел много блогов и постов, таких как:

  1. Программная настройка фона iOS / изображения экрана блокировки?
  2. https://www.reddit.com/r/jailbreakdevelopers/comments/24uyr6/which_private_framework_and_methods_set/
  3. Обрезка / масштабирование не работает при установке обоев iOS с использованием частной платформы PhotoLibrary
  4. Обработка частных рамок в Xcode ≥ 7,3
  5. Как установитьБлокировка экрана, обоев и рингтона программно в 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 не одобрит это, но мне все равно.

Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...