ウェブテクノロジ開発部の遠藤です。
先日、Unityを用いたiPhone(以下、iOS)アプリの開発環境を構築する機会がありまして、その過程でちょっとしたトラブルが起こりました。
1. 証明書をきちんと入れたのに認識されない!
その問題とは、1つのライセンスを用いて複数のMacでiOSアプリの開発環境を構築する際に発生するものです。
今回の記事では、この問題の解決方法についてご紹介したいと思います。
2. Xcode のインストール~証明書のインストール
iOSアプリのビルド環境を構築し、iOS実機上で動作検証するにはMacにXcodeをインストールしたあとに、証明書のインストールや認証などいくつかのステップが必要になります。
これらのステップに関する情報は既にネット上で簡単に見つけることができますのでここでは割愛します。
さて、一通りセットアップを終えたところで、いざビルドを試みると、
Xcode could not find a valid private key / certificate pair for this profile in your keychain.
というエラーが発生しました。
オーガナイザで見たプロビジョニングのStatusには
Valid signing identity not found
とあります。
上記のエラーについて、ネット上でよく書かれているのが、デフォルトのキーチェーンが「ログイン」になっていないため、というものです。
この点については私の環境では問題ありませんでした。
3. 既存の証明書を2台目以降のMacにダウンロードして入れると…
あれこれ悩んでいたところ、問題は私が利用した証明書が、別のMac上で既に作成済みだったものであり、それをAppleの開発サイト経由でダウンロードして取り込んでいたために秘密鍵が含まれておらず、正しく認証することができなかった、ということのようです。
つまり1つのライセンス(Certificate)を用いて複数台のMacで開発を行う場合は、最初に認証したMac上にある秘密鍵が必要になる、ということでした。
このための手順は、“iPhone 証明書 複数台 Mac” といったキーワードで検索すれば先人の方々のお知恵を拝借できるので、ここも割愛させて頂きます。
そのお知恵を借りて早速「iPhone Developer: 名 姓 (HOGEHOGE)」という秘密鍵を一台目のMacから書き出し、2台目のMacに取り込んで見ましたが…
私の環境ではそれでも足りず…
4. 「iPhone Distribution: 会社名」も必要です
結果として、
iPhone Developer: 名 姓 (HOGEHOGE) iPhone Distribution: 会社名
という2つの証明書ファイルを書き出して、取り込む必要がありました。
※「iPhone Distribution: 会社名」については個人で開発されている方には必要がないものかもしれません。
[ 正しく動作する証明書の例 ]
証明書に関する問題については以上です。
5. Unity からパブリッシュしたプロジェクトでのエラー
iOSアプリに関連してUnityプロジェクトに関しても少々触れたいと思います。
近年話題のマルチプラットフォームのゲームエンジンであるUnity 上でアプリを作成し、iOS 向けにパブリッシュする際にも、設定が正しくないと似たようなエラーが発生します。
「Player Settings…」の「Company Name, Product Name, Bundle Identifier」あたりの内容が、iOS の開発者ページで申請したものと合致していないと、Code Sign errorの類のエラーが発生します。
初めて環境を構築される方は、このあたりもチェックされるとよいと思います。