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.
- V podokně řešení klikněte pravým tlačítkem na projekt pro iOS a vyberte Uvolnit projekt.
- Znovu klikněte pravým tlačítkem myši na projekt a vyberte Upravit [Název_projektu].csproj
- 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' ">
- Ladění:
- V každém sestavení, které používají simulátor, odstraňte nebo okomentujte následující vlastnost:
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
- 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.