Я просто хочу создать плагин MS для подключения SpringBoard. Я следую учебнику " gojohnnyboi " отсюда "http://www.ipodtouchfans.com/forums/showthread.php?t=103558".
Чтобы создать dylib в XCode, я следую инструкции " SkylarEC " . Я смешал эти два замечательных урока и, наконец, добился успеха, получив Dlib. Но когда я поместил 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.h в соответствующее место. И места,
- libsubstrate.dylib: /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/
- subst.h: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include
и мой базовый SDK 3.0.