xcnotary لم يعد هناك حاجة! استخدم xcrun notarytool --wait كما هو موضح في مستندات Apple: تخصيص سير عمل التوثيق
مع مثال موجز هنا: #22 (تعليق)

يتضمن توثيق تطبيق MACOS سلسلة من الخطوات اليدوية ، بما في ذلك ضرب حزمة ، وتحميلها إلى Apple ، واستقصاء خدمة التوثيق.
xcnotary أتمتة هذه الخطوات لك. هو - هي:
stderr .
# Install
brew install akeru-inc/tap/xcnotary
# Upgrade
brew update
brew upgrade akeru-inc/tap/xcnotaryلإجراء عمليات توقيع الكود المختلفة على الإدخال دون إرسال:
xcnotary precheck < input path >لإجراء عمليات توقيع الرمز ، أرسل إلى خدمة التوقيت ، وحظر في انتظار الاستجابة:
xcnotary notarize < input path >
--developer-account < Apple Developer account >
--developer-password-keychain-item < name of keychain item, see below >
[--provider < provider short name > ]
[--no-precheck]المدخلات المدعومة:
لا تتعامل هذه الأداة مع كلمة مرور مطور Apple. بدلاً من ذلك ، يقرأ altool XCode's Helper كلمة مرور معرف Apple Developer الخاص بالتطبيق مباشرةً من سلسلة المفاتيح. راجع الوثائق الخاصة بـ xcrun altool --store-password-in-keychain-item لإعداد عنصر مناسبة للتوصل عن مفاتيح.
يجب تحديد الوسيطة --provider -إذا كان حساب المطور مرتبطًا بأكثر من فريق. يمكن الحصول على هذه القيمة عن طريق تشغيل الأمر التالي والإشارة إلى عرض "ProvidershortName".
xcrun altool --list-providers -u " $DEVELOPER_ACCOUNT_USERNAME " -p " @keychain: $PASSWORD_KEYCHAIN_ITEM " سوف يتصل altool XCode بالعديد من مضيفي Apple كما هو موضح في الوثائق.
عند فشل التوثيق ، ستتصل xcnotary بـ https://osxapps-ssl.itunes.apple.com/ على المنفذ 443 لاسترداد سجل الفشل.
تنصح وثائق Apple: "تحقق دائمًا من ملف السجل ، حتى لو نجحت التوقيت ، لأنه قد يحتوي على تحذيرات يمكنك حلها قبل التقديم التالي."
ستجلب xcnotary وعرض استجابة خدمة التوثيق عند الانتهاء.
تحاول xcnotary التحقق من المدخلات لبعض مشكلات التوثيق الشائعة قبل تحميلها على Apple. على الرغم من أن هذه الشيكات ليست مضمونة ، إلا أنها قد توفر لك دقائق في انتظار استجابة فقط للفشل بسبب علامة توقيع رمز غير صحيحة.

عندما تكون الإدخال عبارة عن حزمة تطبيق ، سيتم إجراء الشيكات التالية:
عندما يكون الإدخال هو .dmg أو .pkg ، يتم إجراء فحص معرف المطور فقط ، أي الفحص الوحيد الذي يمكن تنفيذه في الوقت الحالي دون استخراج المحتويات. في سير العمل الخاص بك ، قد ترغب في تشغيل xcnotary precheck على هدف الحزمة الخاص بك قبل تعبئته.
في حالات نادرة ، قد يكون من المفيد استكشاف مشكلات توقيع الكود وإصلاحها مباشرة باستخدام استجابة خدمة التوثيق. للقيام بذلك ، حدد --no-precheck xcnotary notarize
تضع الأمثلة التالية العديد من أعلام الإنشاء الضرورية ، مثل توقيع الكود مع "الطابع الزمني الآمن".
xcodebuild
-target < target >
-scheme < scheme >
-configuration Release
-derivedDataPath .xcodebuild
" CODE_SIGN_IDENTITY=Developer ID Application: <team name> "
" OTHER_CODE_SIGN_FLAGS=--timestamp --options=runtime "
CODE_SIGN_INJECT_BASE_ENTITLEMENTS=NO
CODE_SIGN_STYLE=Manual يجب أن يتطابق CODE_SIGN_IDENTITY مع شهادة سلسلة المفاتيح المقابلة.
لاحظ أن --options=runtime سيكون له تأثير في اختيار ثنائي إلى بيئة وقت التشغيل المتصلب. من المرجح أن ترغب أولاً في تمكين إمكانية "وقت التشغيل الصلب" يدويًا في إعدادات الهدف من XCode> "التوقيع والقدرات" والتأكد من وظائف التطبيق كما هو متوقع. هناك ، يمكنك أيضًا إضافة أي مستحقات للاسترخاء في قيود وقت التشغيل.
pkgbuild
--component < path to bundle built according to above specs >
--sign " Developer ID Installer: <team name> "
--timestamp
< output_pkg_name.pkg >التصميم بعد إنشاء DMG:
codesign -s " Developer ID Application: <team> " < dmg >تغيير السجل
طلبات/تعليقات/أسئلة؟ اكتب: [email protected]