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ž 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é ad hoc & buildy v App Storu.

K tomu může dojít v případě,že vytváříte ze služby Visual Studio v systému Windows a pokoušíte se vytvořit pomocí distribučního profilu a certifikátu, 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 Windows PC, sestavení nebude moct najít distribuční certifikát, i když je nainstalovaný na počítači Mac.

Zřizování zařízení

Pokud jste zařízení s iOSem ještě nezř ěli, následující průvodce vás provede celým podrobným procesem: Průvodce zřizováním zařízení

Chyba při použití simulátoru iOSu

Poznámka

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

V Xamarinu došlo k chybě. Visual Studio verze 3.11, která způsobila, že projekt pro iOS v šabloně Xamarin.Forms přidá soubor Entitlements.plist codesign do sestavení simulátoru a účinně blokuje testování pomocí simulátoru.

Jak problém vyřešit

Tento problém můžete obejít odebráním <CodesignEntitlements> příznaku z sestavení pro ladění v souboru .csproj. Můžete to provést takto:

Upozornění

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

  1. V podokně řešení klikněte pravým tlačítkem na projekt pro iOS a vyberte Project
  2. Znovu klikněte pravým tlačítkem na projekt a vyberte Upravit [Název_projektu].csproj.
  3. Vyhledejte skupiny vlastností ladění. Měly by začínát příznaky, které vypadají takhle:
    • Ladění: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
    • Vydání: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
  4. V každém sestavení, které simulátor používají, odstraňte nebo okomentování následující vlastnosti: <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
  5. Znovu načtěte projekt a měli byste být schopni ho 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 téma Jaké možnosti podpory jsou pro Xamarin k dispozici? informace o možnostech kontaktu, nápěvcích a také o tom, jak v případě potřeby vytvořit novou chybu.