Во-первых - я знаю, что частные фреймворки/API не приведут меня в AppStore, это только для частного использования/исследования.Импорт ChatKit (т. Е. Private Framework) ИЛИ с использованием CKDBMessage как-то
Я не могу получить свой проект для компиляции с ChatKit.framework
.
В принципе мне нужно как-то инициализировать объект CKDBMessage
и получить от него материал.
первый подход, который я попробовал, чтобы быть в состоянии назвать это:
CKDBMessage* msg = [[CKDBMessage alloc] initWithRecordID:lastID];
NSLog(@"GOT SMS: %@", msg.text);
Я не мог заставить его компиляции с любой комбинацией этих решений:
- Просто добавить только
CKDBMessage.h
в мой проект - Добавить все заголовки
ChatKit.framework
- Добавить также
ChatKit.framework
самого файл
У меня есть заголовки и рамка файл в Headers
папке, и я попробовал добавлять любой/все эти построения настройки, как на рекурсивном/нерекурсивно:
- Рамочные Пути поиска ->
$(PROJECT_DIR)/Headers
- Заголовок Пути поиска ->
$(SRCROOT)/Headers/ChatKit.framework/Headers
$(SRCROOT)/Headers
- пользователя Header Пути поиска ->
$(SRCROOT)/Headers
$(SRCROOT)/Headers/ChatKit.framework/Headers
Всегда поиск путей пользователя всегда на ДА
второй вещь, которую я попытался было сделать все во время выполнения, это то, что у меня есть:
Class CKDBMessage = NSClassFromString(@"CKDBMessage");// objc_getClass("CKDBMessage");
SEL sel = @selector(initWithRecordID:);
NSMethodSignature *signature = [CKDBMessage methodSignatureForSelector:sel];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
invocation.selector = sel;
[invocation setArgument:&lastID atIndex:2];
[invocation invoke];
NSObject * msgWeak = [CKDBMessage alloc];
[invocation getReturnValue:&msgWeak];
NSObject *msg = msgWeak;
NSString *text = [msg performSelector:@selector(text)];
NSLog(@"text: %@", text);
Здесь я врезаться в invocationWithMethodSignature:
потому что NSClassFromString возвращает ноль вместо класса ...
Любые идеи по любому из эти два подхода?
Это для nonjailbroken, iOS8 (.2), используя Xcode6
Привет, вы можете поделиться более подробную информацию? dlopen, RTLD_LAZY показывает ошибки. необъявленный идентификатор – Durgaprasad
Вы должны включить #include для dlopen. На моей стороне я хотел знать, откуда у тебя последний идентификатор? –
jrmgx
@jrmgx отредактировал мой ответ ... удачи (: –