HaneCa

独り立ちへ向けた長い道

XamarinでiOSシミュレータで実行できない時の対処法

投稿日: 2020年4月30日
Photo by Oleg Magni on Unsplash

Visual Studio for MacでXamarinのプロジェクトを作成し、iPhoneのシミュレータ上で動かそうとしたときに、次の様なエラーが発生しました。

 

今回はこの解決方法について紹介します。

 

開発環境

まず、今回はAzure Active Directory B2Cと呼ばれる認証サービスを利用するアプリのサンプルをここからダウンロードしました。

ダウンロードしたプロジェクトをVisual Studio for Mac v8.5.4で開き、Azure AD B2Cの作成とその内容をプロジェクトに設定する方法は、ここに書かれた手順に従いました。

エラーが発生した状況とその原因

今回、Azure AD B2Cの設定が完了したあと、iOSプロジェクトをiPhoneシミュレータ上でデバッグする様に、Visual Studioで実行したときに最初に紹介したエラーが発生しました。

原因を調査したところ、iOSのプロジェクトにApple Developer Bundle Identifierが設定できていないことが原因であることがわかりました。エラーメッセージには、ここを参照する様に書かれていますが、何が問題なのかをどこをみたら良いのかがわかりませんでした。

 

エラーの解決方法

Visual Studio for Macには、Preferencesのウインドウを立ち上げると、XCodeのようにApple IDでログインしてアプリ用のProvisioning Profileを自動で作成するように動く機能はあるのですが、ログインはできるが、次のようなエラーが発生し、Certificationは生成することができないと言う状態です。

今回は、このエラーを解決する方法を紹介します。解決する方法と言っても、完全に起こらなくする方法ではなく、今回のプロジェクトでは起こらなくする方法です。新しい別のプロジェクトを作成した場合は、同じようなことが起こる可能性があります。

まず、ソリューションに含まれる複数のプロジェクトの中で、.iOSで終わるプロジェクトを開きます。そして、その中にあるinfo.plistを開きます。

そこで、Automatic Provisioningを選択してもProvisioning Profileを生成できず、次のように先に紹介した同じエラーが発生してしまいます。

実現方法は単純で、XCodeでBundle Identifiersが同じになるプロジェクトを作り、Provisioning Profileを生成したいTeam IDと紐付けてProvisioning Profileを生成することで作成できる。

さらに、それをVisual Sudioで認識するため、Signing Schemeは、Manual Provisioningを選択する。そして、「Bundle Signing Options..」と言うボタンを押し、現れたウインドウで次のように入力する。

まず、Signing Identityに、先ほどProvisioning Profileを生成したTeam IDを選択する。次に、Provisioning ProfileにXCodeで生成したProvisioning Profileを選択する。さらに、Custom Entitlementsに予めプロジェクトに含まれるEntitlements.plistを選択する。

そして、プロジェクトのデバッグを開始ボタンを押すと、iPhoneシミュレータでアプリを起動することが可能になる。

 

参考サイト

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください