سؤال

مرحبا، أحتاج إلى بعض القدرات الإضافية لبرنامجي وأرغب في استخدام بعض واجهات برمجة التطبيقات غير الموثقة لبرنامج iPhone الخاص بي. قمت بتنزيل: Dumpframeworks كما Dumpframeworks.pl وتفريغ الفصل من: http://ericasadun.com/headerdumpkit/

أضع dumpframeworks.pl في التنزيلات وملف تفريغ الفصل في / usr / المحلية / الصندوق

في المحطة أجري:

$perl DumpFrameworks.pl

وبعض التحذيرات والأخطاء ظهرت:

Framework: Accelerate
2009-09-30 08:39:58.776 class-dump[466:903] Warning: This file does not contain any Objective-C runtime information.
Framework: ApplicationServices
2009-09-30 08:40:00.443 class-dump[473:903] Couldn't read file: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/ApplicationServices.framework/ApplicationServices
2009-09-30 08:40:00.449 class-dump[473:903] Couldn't read file: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/ApplicationServices.framework/ApplicationServices
class-dump: Input file (/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/ApplicationServices.framework/ApplicationServices) is neither a Mach-O file nor a fat archive. 
... etc (above warnings are very common when I run the perl script)

*** ولكن الشيء الأكثر أهمية، يبدو أن البرنامج النصي يفشل في النهاية.

أنا أخذت***

(after several warnings like above)
Framework: WebKit
    2009-09-30 08:40:24.228 class-dump[662:903] caught exception: expected (many things), got 260
    2009-09-30 08:40:24.232 class-dump[662:903] type: ^{WebDocumentLoaderMac=^^?iB^{Frame}{RefPtr<WebCore::MainResourceLoader>="m_ptr"^{MainResourceLoader}}{HashSet<WTF::RefPtr<WebCore::ResourceLoader>,WTF::PtrHash<WTF::RefPtr<WebCore::ResourceLoader> >,WTF::HashTraits<WTF::RefPtr<WebCore::ResourceLoader> > >="m_impl"{HashTable<WTF::RefPtr<WebCore::ResourceLoader>,WTF::RefPtr<WebCore::ResourceLoader>,WTF::IdentityExtractor<WTF::RefPtr<WebCore::ResourceLoader> >,WTF::PtrHash<WTF ... etc (I got many many lines of this kind of code in WebCore framework)

أتساءل ماذا أفعل الخطأ هنا؟ هل أحتاج إلى بعض الإعدادات الإضافية؟

أنا أستخدم Mac OS 10.6.1 وأرغب في تفريغ 3.0 أطر في المقام الأول ولكن هدفي الحقيقي هو 3.1 أطر

أي مساعدة سيكون موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

من فهمي لوجود أبيس غير موثقة هم هناك. لذلك في أي تطبيق يمكنني فقط الاتصال بهم.

من فهمي لمخففات الفصل، هناك حاجة لاستكشاف واجهات برمجة التطبيقات غير الموثقة.

في كتاب Sadun، تقول، إليك API غير موثقة اتصل بهذا لاستخدامه، قم بتضمين هذا في الرأس. ثم يمكنك استخدامه.

توصيتي لا تستخدمها.

نصائح أخرى

يبدو إصدار تفريغ الفصل المدرج في موقع إيريكا قديما. يمكن العثور على نسخة عمل (اعتبارا من iPhone OS 3.2، على أي حال) هنا:http://www.codethecode.com/projects/class-dump/

ملاحظة: سيظل البرنامج النصي يفشل بعد إجراء عدد قليل من الأطر؛ بدلا من إصلاح البرنامج النصي، يمكنك فقط تشغيل تفريغ الفئة يدويا على الأطر التي تهتم بها.

بمعنى آخر:

cd /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/UIKit.framework
class-dump UIKit -H -o ~/temp/Headers/UIKit

أعتقد أنني استخدمت DumpFrameWorks ما مجموعه مرة واحدة، لذلك أنا لست على دراية به أو لماذا تفشل. ومع ذلك، IIRC، فإنه يجعل من السهل تفريغ المعلومات الموجودة في الرؤوس.

بالنسبة إلى حيث ملفات الرأس، قم بعمل أكثر من مجرد قص ولصق نص. نظرة في أي البرنامج النصي لا. وعلم بوضوح من أين يسحب الأطر العامة والخاصة. انتقل إلى هذه الدلائل، ابدأ الحفر، وستجد ملفات الرأس.

قم بتضمين الأطر في مشروعك، استيرادها حيث ترغب في استدعاء الوظائف، واستدعاء الوظائف عند سردها في الرؤوس.

فقط في حال كنت غير مدرك، فإن الدعوة في واجهات برمجة التطبيقات غير الموثقة هي طريقة جيدة للحصول على تطبيقك الذي رفضه Apple.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top