Jak notářsky ověřit sloučenou aplikaci 4D (macOS 12 a Xcode 13)

Automaticky přeloženo z Deepl

Poznámka: Aktualizace pro macOS 12/Monterey a Xcode 13. Pro Xcode 12 a starší viz tento příspěvek na blogu.

V systému Monterey (macOS 12) se důrazně doporučuje notovat aplikace distribuované ve veřejné síti. Značné množství vývojářů přenáší své aplikace pomocí připojeného úložného zařízení nebo prostřednictvím sdílení souborů; v těchto případech, kdy uživatel již vývojáři důvěřuje, není notářská ověření vyžadována. Cílem notářského ověření je ujistit uživatele, že aplikace není škodlivá, a vyžaduje se pouze u aplikací stažených z webových stránek.

Pomocí naší vestavěné funkce podpisu při vytváření aplikací pomocí 4D v18 je vaše aplikace připravena k notářskému ověření. Tento proces probíhá mimo systém 4D. Zahrnuje přidání elektronického podpisu k vaší žádosti a odeslání podepsané žádosti do automatizované kontrolní služby. Zde je vše, co potřebujete vědět:

PŘEDPOKLADY

XCODE

Notářské ověření vyžaduje Xcode 13 nebo novější a macOS 12 nebo novější.

Pokud máte v počítači Mac nainstalováno více verzí Xcode, můžete si pomocí nástroje Xcode-select vybrat vhodnou verzi:

sudo xcode-select -s /path/to/Xcode13.app

I když Xcode obvykle přímo nepoužíváte, měli byste jej alespoň jednou spustit. Pokud vás upozorní na možnost stažení „Developer Tools“, přijměte ji.

Pokud vás vyzve k potvrzení licenčních podmínek, přijměte je.

Není od věci tento krok zopakovat po instalaci novější verze Xcode. Obvykle je třeba změny licence přijmout, jinak se notářský zápis nezdaří.

V některých případech je třeba se přihlásit na adresu https://appleid.apple.com/account/home, abyste přijali nové podmínky Apple Store; jinak může notářský zápis selhat (i když nechcete publikovat v App Store).

DVOUFAKTOROVÉ OVĚŘOVÁNÍ

Na svém Apple ID musíte mít také aktivované dvoufaktorové ověřování.

Pokud si nejste jisti, zda jste dvoufaktorové ověřování nastavili, přihlaste se na stránku svého účtu Apple ID, vyhledejte v části Zabezpečení možnost dvoufaktorového ověřování a podívejte se, zda je funkce zapnutá nebo vypnutá.

Přehled procesů

Pro notářské ověření je nutné provést nastavení. To je třeba provést pouze jednou. Poté je třeba pro každé sestavení zazipovat, odeslat, počkat na výsledky, orazítkovat a znovu zazipovat. A to platí pro každou aplikaci (klient, server, jeden uživatel, komponenta) a každé sestavení.

Tento příspěvek na blogu nejprve podrobně popisuje každý krok, aby pomohl pochopit proces, a nakonec vysvětluje, jak použít metodu 4D k plné automatizaci práce.

Jednorázové nastavení

Pro notaci budete potřebovat následující položky:

  • Váš účet Apple ID, obvykle váš e-mail
  • Vaše týmové ID společnosti Apple. Jak jej získat, se dozvíte níže v části „Získání team-ids“.
  • Heslo pro konkrétní aplikaci, viz níže, jak jej získat.

S těmito údaji můžeme heslo zaregistrovat v řetězci klíčů. To nám umožní notářský zápis pomocí příkazového řádku (nebo automaticky ze 4D), aniž bychom museli zadávat heslo v otevřeném textu.

Generování hesla specifického pro aplikaci

  1. Přihlaste se k webu apple.com.
  2. V části Přihlášení a zabezpečení klikněte na položku Hesla specifická pro aplikace.
  3. Klikněte na možnost Generovat heslo specifické pro aplikaci nebo klikněte na tlačítko „+“ a poté postupujte podle pokynů na obrazovce.
  4. Nové heslo můžete pojmenovat „notarytool“.
  5. Zkopírujte zobrazený kód.

Získání týmových ID

Měli jste již požádat o certifikáty Apple pro kódové podepisování aplikace a zaregistrovat je. Když tak učiníte, obvykle jsou k dispozici dva z nich (čtyři včetně iOS). Jeden začíná slovy Apple Development: vaše jméno(user-id), druhý slovy Developer ID Application: název společnosti(team-id).

Spusťte sadu klíčů Apple, vyberte certifikáty a zkontrolujte, zda vidíte Developer ID Application: název společnosti. Pokud ano, číslo mezi závorkami () je vaše ID.

Pokud ne, spusťte v Terminálu následující příkaz:

xcrun altool --list-providers -u "AC_USERNAME" -p secret_2FA_password

Nahraďte AC_USERNAME uživatelským jménem svého účtu Apple vaší e-mailovou adresou a zadejte zkopírovaný kód/2FA heslo z výše uvedeného.

Terminál odpoví vaším týmovým ID.

Další podrobnosti naleznete zde.

Přihlašovací údaje do obchodu

V Terminálu spusťte následující příkaz:

xcrun notarytool store-credentials "notarytool" --apple-id "AC_USERNAME" --team-id <WWDRTeamID> --password <secret_2FA_password>

Zachovejte uvozovky (jen nahraďte obsah), ale nepoužívejte znaky <>, jen id nebo heslo.

Sestavit / Zipovat / Notářsky ověřit / Razítko

Nyní, po (pouze jednorázovém) předinstalačním procesu, je čas na skutečné sestavení.

Použijte příkaz nebo dialogové okno BUILD APPLICATION a sestavte svou komponentu nebo aplikaci. Pomocí certifikační funkce vytvořenou aplikaci automaticky podepište. Pokud sestavení selže kvůli chybě při podepisování, musíte ji nejprve opravit. U nepodepsaných aplikací se notarizace nezdaří.

Pokud komponenta obsahuje spustitelné soubory ve složce resource nebo aplikace obsahuje komponenty či zásuvné moduly, musí být platné, předem podepsané.

Zip

Po dokončení sestavení je dalším krokem zazipování aplikace:

V terminálu zadejte následující příkaz:

/usr/bin/ditto -c -k --keepParent "$APP_PATH" "$ZIP_PATH"

Nejjednodušší způsob, jak zadat správné cesty, je zkopírovat je a vložit do Terminálu:

/usr/bin/ditto -c -k --keepParent "

Poznámka : Za znakem keepParent a jednoduchou uvozovkou je mezera.

Nyní přetáhněte aplikaci nebo komponentu do Terminálu a přidejte další znak uvozovek, abyste získali něco jako např:

/usr/bin/ditto -c -k --keepParent "/Users/thomas/Documents/4D/Komponenten/FileTransfer_Curl_Build/Components/FileTransfer.4dbase"

Přidejte mezeru, znak uvozovek, přetáhněte cílovou složku a poté zadejte název požadovaného zipu, za kterým následuje mezera.

Poslední řádek by měl vypadat takto:

/usr/bin/ditto -c -k --keepParent "/Users/thomas/Documents/4D/Komponenten/FileTransfer_Curl_Build/Components/FileTransfer.4dbase" "/Users/thomas/Documents/4D/Komponenten/FileTransfer_Curl_Build/Components/FileTransfer.zip"

Stisknutím klávesy Enter příkaz provedete a získáte zip.

Důležité: tento postup neprovádějte s jinými nástroji pro práci se zipem, včetně Finderu. Aby fungovala notace, je třeba použít příkaz ditto.

Nahrání adresy

V Terminálu zadejte následující příkaz (připomínka: pro usnadnění můžete cestu k souboru přetáhnout myší):

xcrun notarytool submit /Users/thomas/Documents/4D/Komponenten/FileTransfer_Curl_Build/Components/FileTransfer.zip --keychain-profile notarytool --wait

Odpověď, kterou dostanete, je následující:

Provedení předběžných kontrol pro soubor FileTransfer.zip a zahájení připojení k notářské službě Apple…

Přijaté ID pro odeslání

id: 2071ae83-6660-4d84-afaf-97ea34e945c5

Soubor byl úspěšně odeslán

id: 2071ae83-6660-4d84-afaf-97ea34e945c5

cesta: /Users/thomas/Documents/4D/Komponenten/FileTransfer_Curl_Build/Components/FileTransfer.zip

Čeká se na dokončení zpracování.

Aktuální stav: Přijato…………..

Zpracování dokončeno

id: 2071ae83-6660-4d84-afaf-97ea34e945c5

stav: vyřízení žádosti o podporu bylo zahájeno: Přijato

Pokud je stav „Invalid“, můžete se zeptat na důvod zadáním:

xcrun notarytool log fb4a2e8f-e2fe-4689-b38f-f6a840abfeb6 --keychain-profile "notarytool" developer_log.json

Číslo za záznamem je id z odeslané odpovědi. Poslední název, developer_log.json, je název nebo cesta k souboru s výsledkem na vašem disku, který si můžete zvolit podle libosti.

Odpovídá se pomocí:

Úspěšně stažen protokol o odeslání

id: fb4a2e8f-e2fe-4689-b38f-f6a840abfeb6

umístění: /Users/thomas/developer_log.json

Zkontrolujte důvod selhání pomocí:

cat /Users/thomas/developer_log.json

Více informací naleznete zde.

Automatizace procesu

Tuto úlohu je třeba opakovat při každém sestavení; má smysl ji automatizovat. Je to tak? Zde je vše, co k tomu potřebujete:

Dalším případem použití je sestavování komponent. Komponenty sestavené pro počítače Silicon Mac musí být notářsky ověřené, což znepříjemňuje publikování komponent prostřednictvím Githubu.

Komponenta: https://github.com/ThomasMaul/FileTransfer_Class obsahuje metodu „_buildComponent“, která komponentu zkompiluje, sestaví, podepíše, notářsky ověří, sešije a zabalí. To vše se děje automaticky při spuštění.

Posledním krokem je nahrání zipu jako „Releases“ na GitHub.

Doufám, že vám tento tip pomůže při notářské úpravě vaší příští aplikace. Pokud budete potřebovat další pomoc, neváhejte nás kontaktovat na fóru 4D.

Thomas Maul
• VP pro strategii, produktové řady 4D • Když byla v roce 1988 vytvořena německá pobočka 4D, Thomas nastoupil do společnosti jako technický ředitel a pomohl vybudovat komunitu 4D vývojářů v Německu i Rakousku. Po mnoha letech podpory zákazníků s technickými problémy a stále větší angažovanosti v otázkách prodeje a managementu byl v roce 1999 povýšen na výkonného ředitele pro 4D Germany. Od roku 2005 se jako člen výkonné rady stal součástí celosvětové strategie společnosti, což vedlo k jeho současné pozici viceprezidenta pro strategii, produktové řady 4D, zodpovědného za definování a realizaci celkové strategie pro produktovou řadu 4D ve vztahu k týmům programování, výzkumu a vývoje, prodeje a marketingu.