Как бы я использовал частный API Apple IOS 8 для устройств без джейлбрейка для специального бизнес-распространения? В частности, включение Wi-Fi или сотовых данных

Поскольку вопрос предполагает, я хотел бы знать, как я могу использовать частный API в частном приложении IOS 8.1 - 8.1.2 компании. Это не будет проходить через магазин приложений. Мне нужно иметь программный контроль над режимом полета, Wi-Fi, Bluetooth и сотовые данные. Я много раз читал в Интернете, что это невозможно, но я не могу поверить, что это правда. Я попытался создать категорию NSObject и просто вставить метод, который я хочу использовать, чтобы включить Wi-Fi. Тем не менее, я продолжаю получать ошибку Matcho-Link. Я добавил соответствующую библиотеку для "совместного использования" в библиотеку, поэтому не уверен, в чем проблема.

Моя категория

@interface NSObject (Wifi)
- (void)setWifiEnabled:(BOOL)arg1;
@end

Интерфейс моего ViewController

    #import <UIKit/UIKit.h>
#import "NSObject+Wifi.h"
@interface ViewController : UIViewController


@end

Внедрение Viewcontroller

    #import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (IBAction)enableWifi:(UIButton *)sender {
    NSObject * wifi = [[NSObject alloc]init];
    [wifi setWifiEnabled:YES];
}

@end

Сообщение об ошибке:

ld: framework not found Sharing
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Опять же, Sharing.framework добавлен и связан с проектом, и я установил флажок "Копировать файлы при необходимости". Как мне пройти эту ошибку?

1 ответ

Это не так, как работают частные API. Сожалею.

Вы не можете просто создать имя метода для функции, которую вы хотите; вам нужно определить и вызвать класс и / или метод, который соответствует коду, который уже существует в рамках Apple. Найти эти классы / методы - сложная часть, и, как правило, она требует много разборок. Короче говоря, это нетривиальная задача.

По-видимому, есть метод с похожим названием на SBWiFiManager класс, хотя я не могу подтвердить, работает ли это все еще. (Возможно, нет; недокументированные интерфейсы могут быть изменены.) Возможно, вы захотите попробовать.

В любом случае структура обмена, с которой вы пытались связать, совершенно не связана. Удалите его из вашего проекта.

Другие вопросы по тегам