Я просто хочу создать плагин MS для подключения SpringBoard. Я следую «gojohnnyboi« учебник отсюда »http://www.ipodtouchfans.com/forums/showthread.php?t=103558».Как создать плагины для мобильных субстратов на XCode?
Чтобы создать dylib на XCode, я следую за "SkylarEC" tutorial. Я смешиваю эти два больших учебника и, наконец, добился успеха, получив dylib. Но когда я разместил dylib в /Library/MobileSubstrate/DynamicLibraries/
, ничего не произошло (предупреждение не было показано).
Оценив, я обнаружил, что этот dylib не имеет отправной точки, когда он был загружен в память. Так что я упомянул отправную точку, объявив конструктор в .mm файл, например,
__ attribute__((constructor)) static void init()
{
Class _$SBAppIcon = objc_getClass("SBApplicationIcon");
MSHookMessage(_$SBAppIcon, @selector(launch), (IMP) &__$ExampleHook_AppIcon_Launch, "__OriginalMethodPrefix_");
}
Но когда я пытаюсь скомпилировать это, я получаю сообщение об ошибке, как,
**Undefined symbols:
"_MSHookMessage", referenced from:
init() in ExampleHook.o
ld: symbol(s) not found
collect2: ld returned 1 exit status.**
ли у кого есть идея, как это решить? Было бы здорово и полезно, если бы кто-нибудь рассказал подробный учебник/инструкции для создания dylib на XCode.
P.S Я разместил все файлы libsubstrate.dylib и subst.th в соответствующем месте. И локации,
- libsubstrate.dylib: /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/
- substrate.h: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ iPhoneOS3.0.sdk/usr/include
и мой базовый SDK 3.0.
Спасибо за ответ. Если я удалю атрибут __ __ ((конструктор)), то в моем коде его получение будет скомпилировано успешно. Я уже добавил «libsubstrate.dylib» к существующим фреймворкам. Но не повезло. Не могли бы вы помочь мне решить эту компиляционную проблему? Почему ты не можешь (как я вижу, у тебя полное знание и доброе сердце) написал учебник для начинающих, таких как я? На самом деле это было бы более полезно и высоко ценится. – prathumca