Как бы я использовал частный 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
класс, хотя я не могу подтвердить, работает ли это все еще. (Возможно, нет; недокументированные интерфейсы могут быть изменены.) Возможно, вы захотите попробовать.
В любом случае структура обмена, с которой вы пытались связать, совершенно не связана. Удалите его из вашего проекта.