Использование скрытого API Objective-c (iphone)

Я пытаюсь использовать этот guthub Согласно эта ссылка для использования частного api объекта c, но документация довольно ужасна.

Я скопировал код примера в свой xcode, но получаю ошибку компиляции.

NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/TelephonyUI.framework"];
BOOL success = [b load];

Class SKTelephonyController = NSClassFromString(@"SKTelephonyController");

//this line cussing the error
**id tc = [SKTelephonyController sharedInstance];**

NSLog(@"-- myPhoneNumber: %@", [tc myPhoneNumber]);
NSLog(@"-- imei: %@", [tc imei]);

ошибка:

No known instance method for selector 'myPhoneNumber'

Может кто-нибудь, пожалуйста, есть руководство или что-нибудь, чтобы начать работу.

О, я знаю, что мое приложение не пройдет проверку Apple, мне не нужна проверка внутреннего приложения.

благодаря.


person Idan Magled    schedule 27.11.2014    source источник
comment
Нет видимого класса с методом myPhoneNumber. Вы всегда можете сделать пустышку.   -  person Hot Licks    schedule 28.11.2014


Ответы (1)


Во-первых, в примере не говорится о загрузке SKTelephonyController, а о загрузке GAIA.framework. Во-вторых, SKTelephonyController и GAIA недоступны для iOS7 (они работали на iOS 6)

Вот пример того, как вам нужно фиктивно объявить интерфейс и совершать вызовы.

@interface SKTelephonyController : NSObject

+ (id)sharedInstance;
+ (NSString *)myPhoneNumber;
+ (NSString *)imei;

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/GAIA.framework"];
    BOOL success = [b load];
    if (!success) {
       NSLog(@"Can't load bundle");
       return;
    }
    NSLog(@"-- imei: %@", [[SKTelephonyController sharedInstance] imei]);
}
person l0gg3r    schedule 28.11.2014
comment
Прежде всего - спасибо за ответ, но я все еще не могу понять - вы сказали, что структура gaia не поддерживается, но ваш фрагмент использует ее. Между прочим - я не могу понять, что мне нужно делать с файлами заголовков, которые я загрузил. Вы можете привести какой-нибудь пример, который работает сегодня? Спасибо. Идан. - person Idan Magled; 28.11.2014
comment
это будет работать на iOS 6, но, похоже, нет решения для ios7 + - person l0gg3r; 28.11.2014
comment
Хорошо, не могли бы вы дать мне отрывок из того, что будет работать на ios 7 \ 8, чтобы я мог извлечь из этого урок? Кстати, что мне делать с загруженными мной файлами заголовков? мне нужно скопировать его в личную папку фреймворка? или просто заглянуть в них? Спасибо еще раз за помощь. - person Idan Magled; 28.11.2014
comment
Ищу и копирую методы обычно. Я пришлю тебе пример завтра - person l0gg3r; 28.11.2014
comment
Большое спасибо, с нетерпением жду этого. - person Idan Magled; 28.11.2014