Создание libsubstrate для iPhone Simulator

Я работаю над плагинами для мобильных устройств на JB iPhone. я создал dylib в xcode для своего iphone, который отлично подходит для устройства, но когда я пытаюсь создать его для симулятора, он дает мне ошибку «ссылка _MSHOOKMESSAGE от: бла-бла». Я разместил все заголовки в нужных местах. Я получил libsubstrate с устройства, но я думаю, что проблема в этом. libsubstrate с устройства не будет работать для симулятора. Итак, мой вопрос: как создать libsubstrate для симулятора?


person raziiq    schedule 01.02.2010    source источник


Ответы (2)


Если вам просто нужно использовать MSHookMessageEx (который заменил MSHookMessage), вы можете

#define MSHookMessageEx(class, selector, replacement, result) \
 (*(result) = method_setImplementation(class_getInstanceMethod((class), (selector)), (replacement)))

Конечно, MSHookMessageEx в Mobile Substrate сложнее, но для целей тестирования обычно этого достаточно.

person kennytm    schedule 01.02.2010
comment
ох спасибо за ответ. Не могли бы вы помочь мне в использовании этого тоже? Я имею в виду, как его использовать, если я подключаюсь к SBApplicationIcon? В настоящее время у меня есть этот код Class _$SBAppIcon = objc_getClass("SBApplicationIcon"); MSHookMessage(_$SBAppIcon,@selector(launch), (IMP) &__$check_AppIcon_Launch,nil); ` Я получил этот код с какого-то форума и пытаюсь его узнать. - person raziiq; 01.02.2010
comment
@raziiq: Да. Но 4-й аргумент должен быть указателем на IMP для получения исходного метода запуска. - person kennytm; 01.02.2010
comment
о да, nil следует заменить чем-то вроде __Original_Method, верно? Я использую вышеупомянутый код, но, как я описал в своем вопросе, я получаю эту ошибку _MSHookMessage. Итак, чтобы использовать метод, который вы только что описали, как я могу изменить свой код на тот, который вы только что описали? - person raziiq; 01.02.2010
comment
@raziiq: Да, вы должны использовать MSHookMessageEx. (Однако не вставляйте этот макрос на реальное устройство, так как libsubstrate обеспечивает реальную реализацию.) - person kennytm; 01.02.2010

http://www.ipodtouchfans.com/forums/showthread.php?t=103558 Возможно, это поможет вам. Удачи.

person new soul    schedule 11.03.2010