Как создать плагины для мобильного субстрата на XCode? - PullRequest
0 голосов
/ 22 мая 2010

Я просто хочу создать плагин 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.

Ответы [ 4 ]

3 голосов
/ 18 января 2013

Вы, вероятно, должны проверить iOSOpenDev

0 голосов
/ 02 июня 2016

Вы должны скопировать CydiaSubstrate.framework в / Library / Frameworks на своем Mac и установить ссылку на CydiaSubstrate

#include <CydiaSubstrate/CydiaSubstrate.h>
0 голосов
/ 03 декабря 2010

Попробуйте http://unlimapps.com/?p=15 будет гораздо проще скомпилировать плагины, используя методы из этого поста

0 голосов
/ 22 мая 2010

(Это очень старые учебники. Некоторый современный код MS можно найти в http://iphonedevwiki.net/index.php/MobileSubstrate. В конце концов, кто-то должен написать обновленный учебник ...)


Убедитесь, что вы добавили libsubstrate.dylib в свой проект XCode (Добавить & rarr; Существующие файлы ...). Компилятор не найдет автоматически, какой dylib связать, если вы не укажете это.

...