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

Tato chybová zpráva se zobrazí, když daný projekt hledá platné přihlašovací údaje pro podepisování kódu, ale nemůže 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 a app storu.

K tomu může dojít, pokud vytváříte ze sady 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, build nebude moct distribuční certifikát najít, i když je nainstalovaný na Macu.

Zřizování zařízení

Pokud jste ještě nezřídili zařízení s iOSem, provede vás následující průvodce celý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 jsme vyřešili v poslední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 sadě Xamarin.Visual Studio 3.11 došlo k chybě, která způsobila, že projekt iOS v šabloně Xamarin.Forms přidal 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 příznaku <CodesignEntitlements> z buildů ladění v souboru .csproj. Můžete to udělat takto:

Upozorňující

Chyby v souborech .csproj můžou poškodit váš projekt, takže je vhodné soubory před pokusem zálohovat.

  1. V podokně řešení klikněte pravým tlačítkem na projekt 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 třídy Debug 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 přetrvává i po použití výše uvedených informací, přečtěte si, jaké možnosti podpory jsou pro Xamarin k dispozici? Informace o možnostech kontaktu, návrzích a o tom, jak v případě potřeby vytvořit novou chybu.