2016年5月23日月曜日

実機インストールのトラブル

App installation failed
This application's application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed.

経緯)
MBAとiMacの2台で開発しているが、最近iMacで実機インストールができなくなり、certificateをどーにかしろ…と言ってくる(汗)
これまでも



こちらの画面のFix issueを押すと…証明書を破棄して再設定…となっていました。
2台にまたがり作業をしていると、Macを行き来しているうちに過去に入れたテストアプリが起動しなくなります。
その時は原因がわかりませんでした。

本日気付いたこと。
キーチェーンに複数証明書が出きていましたが、期限が有効なので、触らぬ神に祟りなしではないけれど放置していました。しかし1つ1つ選択してみると有効、無効と表示されることが判明。これが上図のFix issueで新規に作っては死んでいった証明書の死骸だった訳です。MBAとiMacの証明書がどこかで異なるものになっていたことからこのような現象は起こっていたと1年経った今、わかりました。
そこで不要と思われる証明書…MBAにはなくて、iMacにあるものを削除。
15個くらいあったものを下図の3つに…。ちなみにMBAには下の2つはないのですが、これまで動いていたものが動作しなくなるのも嫌なので…下の2つは残し、上のiPhone Developer: 名前(ID?)を同じものにするための作業に移ります。

2台目の開発機を設定する方法



iMacの方に問題があるので、iMacの証明書 iPhone Developerを削除します。
MBA(正常動作する元の証明書)をMacにコピーする作業をはじめます。

元Mac(MBA)のキーチェーンで上図のように選択をして、右クリック(もしくは
controlを押して再選択)すると右側に選択肢が表示されるので「(選択証明書の名前)を書き出す」を選択します。


こんな画面が表示されるので保存を押す。



パスワードを入力。私は面倒なので何もいれずにOKを押します。
(自己責任でお願いします)



次にまたパスワード入力が出ますが、こちらは自分のMacに設定されているものです。
ソフトの更新などに聞かれてくる本体のパスワード。

これをコピー先のMac(今回はiMac)に送って、ダブルクリックすると2代目も開発機として無事登録されます。



そして無事、ビルドはできるようになりましたが、実機に入る寸前に

Your account already has a valid iOS Development certificate
You have a valid iOS Development
certificate in the Member Center, but it is
not installed locally. If your signing identity
is installed on another Mac, you can
export a developer profile on that Mac and
import it on this Mac. You can also reset
your current certificate.

また難癖を付けられています。
証明書をインストール、削除をするとMacを再起動すると問題が解決するといった方法をよく見かけますが、それでは解決しませんでした。
そこで今回は
上部のメニューから、
(1) window > devieces
(2) 左側のタブからiPhone実機を選択
(3) 右下のリストからトラブル中のアプリを選択して削除
(4) 実機からも削除されていました
(5)再度インストール

原因はよくわかりませんが、今回は何とか2台のMacで実機インストールができるよう状態に戻りました。
元々のCertificateをリセットするか…と確認画面が表示されますが、さすがにそれをするとリリース中のアプリにも影響が出てまた面倒な作業をしないといけなくなるのは回避できたと思います。
半年間新規でアプリを申請していないので、またDistribution用のCertificatで面倒なことになりそうですが近々、リハビリのために1本リリースしたいと思います。