سؤال

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

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

المحلول

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

نصائح أخرى

ستجد صعوبة في استخدام واجهة برمجة تطبيقات خاصة عن طريق الصدفة. لم يتم توثيقها داخل مستندات SDK ، ولا تظهر في اقتراحات إكمال رمز XCODE.

والسبب في أن هذا أصبح أخبارًا مؤخرًا هو منشئ الإطار الذي استخدمته العديد من التطبيقات باستخدام واجهة برمجة تطبيقات خاصة ، لذلك عندما قام المطورون الذين شملوا إطار عمله بتحديث تطبيقاتهم ، تم رفضهم (على الرغم من أن هؤلاء المطورين لم يستخدموا واجهة برمجة تطبيقات خاصة ، إطار عملوا إلى تطبيقهم فعل).

هذه هي الطريقة الوحيدة التي يمكنك من خلالها استخدام واجهة برمجة تطبيقات خاصة عن طريق الخطأ.

ليس فقط واجهات برمجة التطبيقات الخاصة التي يمكن أن تتسبب في رفض طلبك. يمكن أن يؤدي استخدام أعضاء غير موثقين في واجهة برمجة التطبيقات العامة إلى رفض طلبك. على سبيل المثال ، تم الوصول إلى مكتبة Three20 (منذ ثابت) _phase وأعضاء آخرين في UITouch داخل فئة.

يمكنهم أيضًا اكتشاف المكالمات نشر الأعضاء عبر الأداء ، حيث وضع ما يلي أيضًا الرفض:

UIWindow* window = [UIApplication sharedApplication].keyWindow]
return !![window performSelector:@selector(firstResponder)];

أكثر إثارة للقلق ، إذا جعلت تطبيقك يعمل أقل من 3.1 و 3.0 وفي وقت التشغيل في 3.0 ، فلن تستخدم أيًا من 3.1 الأشياء التي لا يزال بإمكان تطبيقك رفضها. مثال قد يكون cameraOverlayView من UIImagePickerController (يرى هنا). هذا نوع من الحيرة.

عموما عن طريق غيابهم عن رؤوس SDK. واحدة من اتفاقيات Apple هي قيادة أسماء طرق OBJC مع السطح السفلي.

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

رابط -> http://www.chimpstudios.com/appscanner/

تم رفض تطبيقي بواسطة Apple بسبب استخدام API الخاص. هنا رمز ،

    Class UIKeyboardImpl = NSClassFromString(@"UIKeyboardImpl");

    id activeInstance = [UIKeyboardImpl performSelector:@selector(activeInstance)];

    [activeInstance performSelector:@selector(dismissKeyboard)];

ليس من الصعب رفض ما يسمى "باستخدام واجهة برمجة التطبيقات الخاصة". حاول استخدام ما يلي كسمات بيانات أساسية وسيتم رفضها:

  • مؤشر اللون
  • حادثة
  • هوية شخصية

إنه يوضح كيف يقوم الروبوت بمسح واجهة برمجة التطبيقات.

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