كيفية مشاركة بيانات سلسلة المفاتيح بين تطبيقات iOS

StackOverflow https://stackoverflow.com/questions/4115744

سؤال

أنا أصف مشكلة استغرق الأمر مني بعض الوقت لتعلم الإجابة.

ال "generickeychain"مثال هو بداية جيدة في توفير غلاف لمشاركة بيانات سلسلة المفاتيح بين التطبيقات عند استخدام مجموعة AccessGroup في init.

ومع ذلك ، فإن تطبيق هذا في تطبيقي أسفر عن رمز خطأ غامض (استغرق إلى الأبد لتحديد موقع) -25243 ، مما يعني: لا يوجد التحكم في الوصول.

قمت بتشغيل تطبيق Apple الخاص بـ Apple (generickeychain) على جهاز iPad الخاص بي فقط للحصول على نفس الخطأ. هاه؟

هل تفشل وثائق Apple في تقديم ما هو ضروري لإنجاز هذا؟

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

المحلول

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

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

نصائح أخرى

في الواقع ليس من الصعب القيام به. يرجى اتباع الخطوات.

app1:

  1. افتح إمكانيات التطبيق المستهدف وتمكين مشاركة سلسلة المفاتيح.
  2. إضافة معرف. (على سبيل المثال: com.example.sharedaccess)
  3. يضيف "uickeychainstore"لمشروعك.
  4. تأكد من إضافة معرف الفريق إلى مشروع App1 الخاص بك.
  5. أضف Security.framework إلى مشروع App1 الخاص بك.
  6. وأضف هذه الرموز إلى مكان تحتاجه.

    [UICKeyChainStore setString:@"someValue" forKey:@"someKey" service:@"someService"];
    

app2:

  • افتح إمكانيات التطبيق المستهدف وتمكين مشاركة سلسلة المفاتيح.
  • إضافة معرف. (على سبيل المثال: com.example.sharedaccess)
  • يضيف "uickeychainstore"لمشروعك.
  • تأكد من إضافة معرف الفريق إلى مشروع App2 الخاص بك.
  • أضف Security.framework إلى مشروع App2 الخاص بك.
  • وأضف هذه الرموز إلى مكان تحتاجه.

    NSString *string = [UICKeyChainStore stringForKey:@"someKey" service:@"someService"];
    
  • لك Teamids يجب أن يكون نفسه لكلا المشروعين.

  • جربت هذه الخطوات على حقيقية جهاز iPhone.
  • لقد جربت هذه الخطوات أيضًا تلقائي و تنمية iOS الملف المقدم.
  • كانت معرفات حزمة التطبيقات الخاصة بي مثل ذلك: com.example.app1 ، com.example.app2.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top