Proč moje sestavení iOS neproběhne úspěšně kvůli této chybě: no valid iPhone code signing keys found in keychain

Příčina chyby

K této chybové zprávě dochází, když projekt hledá platné přihlašovací údaje pro podepisování kódu, ale nemůžete je najít. Podepisování kódu se vyžaduje pro testování a nasazení na fyzických zařízeních s iOSem; a také buildy ad hoc & App Storu.

K tomu může dojít v případě, že vytváříte sadu Visual Studio ve Windows a pokoušíte se sestavit s distribučním profilem a certifikátem, ale nemáte vzdálené zařízení nebo fyzické zařízení připojené k hostiteli sestavení Mac vybrané jako cílové zařízení. Pokud máte vybrané místní zařízení nebo zařízení připojené k počítači s Windows, sestavení nebude moct najít distribuční certifikát, i když je nainstalovaný na Macu.

Zřizování zařízení

Pokud jste zařízení s iOSem ještě nezřídili, provede vás tento průvodce úplným podrobným procesem: Průvodce zřizováním zařízení

Chyba při používání simulátoru iOS

Poznámka

Tento problém byl vyřešen v nedávných verzích Xamarinu pro Visual Studio. Pokud k problému dochází v nejnovější verzi softwaru, vytvořte novou chybu s úplnými informacemi o správě verzí a úplným výstupem protokolu sestavení.

V Xamarin.Visual Studiu 3.11 došlo k chybě, která způsobila projekt pro iOS v šabloně Xamarin.Forms a přidala do sestavení simulátoru codesign Entitlements.plist; efektivně blokuje testování pomocí simulátoru.

Jak problém vyřešit

Tento problém můžete vyřešit odebráním <CodesignEntitlements> příznaku z buildů ladění v souboru .csproj. Můžete to udělat takto:

Upozornění

Chyby v souborech .csproj můžou poškodit váš projekt, takže je vhodné zálohovat soubory před tím, než se o to pokusíte.

  1. V podokně řešení klikněte pravým tlačítkem na projekt pro iOS a vyberte Uvolnit projekt.
  2. Znovu klikněte pravým tlačítkem myši na projekt a vyberte Upravit [Název_projektu].csproj
  3. Vyhledejte ladicí propertyGroups, měly by začínat příznaky, které vypadají takto:
    • Ladění: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
    • Vydání: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
  4. V každém sestavení, které používají simulátor, odstraňte nebo okomentujte následující vlastnost: <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
  5. Znovu načtěte projekt a měli byste být schopni nasadit do simulátoru.

Další kroky

Pokud potřebujete další pomoc, kontaktujte nás nebo pokud tento problém zůstane i po použití výše uvedených informací, přečtěte si prosím, jaké možnosti podpory jsou k dispozici pro Xamarin? Informace o možnostech kontaktu, návrzích a také o tom, jak v případě potřeby vytvořit novou chybu.