ブログ記事

iPhoneアプリ開発 Xcodeで実機テストが出来なくなった場合の対処方法

iPhoneアプリ開発 Xcodeで実機テストが出来なくなった場合の対処方法

自分の知る限りXcode7まで、開発したアプリをAppStoreからダウンロードしてオーバーライトインストールした後でも、Xcodeによる開発継続が可能でした。

開発過程でXCodeでiPhone、iPadの実機にインストールしたアプリは削除してから、AppStoreからダウンロードインストールするのがセオリーなんでしょうけど、アプリのバージョンアップなのでAppStoreからインストールしたアプリに対してXcodeからオーバーライトするケースなどもXcode7までは、何の問題もなく行えました。

ところが、現状のXcode9(2017年11月末現在)やXcode8からは、過去のXcodeインストールしたアプリや、AppStoreからインストール済みのアプリに対してオーバーライト編集が出来なくなったようです。

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.

という形で、Xcodeからエラーメッセージが表示されて、ビルドしたアプリのインストールが行えません。

 

対処方法として3つの方法

このエラーメッセージに対してのアプローチ方法としては3つの方法がありますので、メモとして残しておきます。

3つの方法と言っても正確には2つの方法になるのかな?

 

1.もっとも簡単な方法

もっとも簡単な方法は、Xcodeから書き込みたいアプリがすでにiPhone/iPadの中にインストールされてしまっているので、そのアプリをiPhone/iPadを削除してからインストールすれば、問題が解決可能です。

しかし、インストールしたアプリが大量のローカルデータ(アプリ内部に保存しているデータ)がある場合、アプリを消すことができない場合もあるかと思います。

 

2.バックアップ可能な場合

この方法は、開発したアプリが古いXcodeでインストールしたままで、AppStoreからダウンロードしたアプリではないという前提となります。

例えば、Xcode7でインストールして動作していたアプリがXcode9では実機で動作できなくなった場合などに有効です。

自分で開発したアプリをAppStoreからダウンロードして、開発したアプリにオーバーライトインストールした場合は、この方法は使用できません。

Xcodeを起動して(Xcode9で話を進めます。)メニューの「Window」にある「Devices & Simulators」を選択します。

Xcode 「Devices & Simulators」ディバイス一覧

表示されたウィンドウに、対象となる実機を接続すれば、左側の「Connected」の一覧に接続された実機の名前があるはずなので、実機を選択します。

Xcode 「Devices & Simulators」アプリ一覧

実機を選択すると「INSTALLED APPS」の一覧が表示され、Xcodeから再インストールしたいけどエラーメッセージが表示されたアプリを選択します。

※この時点で一覧になければ、AppStoreから購入したアプリがiPhone/iPadにインストールされている事になりますので、Xcodeによるアプリのバックアップは行えません。

上記の画面の「INSTALLED APPS」一覧の下に表示される設定ボタンをクリックするとメニューが表示されますので、「Download Container...」を選択し、アプリのバックアップをMac上に作成します。

アプリのローカルデータに保存してあるデータ量にもよりますが、「Download Container...」は場合によってかなり時間がかかったりします。

自分のアプリは20G近くのデータがあったので、1時間ぐらいかかったものもありました。

「Download Container...」が完了したら、iPhone/iPadからアプリを削除します。

(かなり躊躇するかと思いますが、削除してからXcodeでアプリが再インストールできれば、バックアップを復元できます。)

アプリを削除後、Xcodeからアプリがインストール&実行可能になりますので、ビルド&実機実行します。

Xcodeから実機にアプリがインストールできたら、今度は「Devices & Simulators」から対象のアプリを選択し、「Replace Container...」を選択し、先程ダウンロードしたデータを選択し、今度はMacからiPhone/iPadにデータを戻します。

 

3.残された方法

上記の1、2は、以下のXcodeのエラーメッセージをネットで検索すると、対処方法として紹介されているかと思います。

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.


ここで紹介する方法はいつまで使えるかわかりませんが、不幸にも自分でXcodeで開発したアプリをAppStoreからダウンロードインストールしてオーバーライトしてしまい、Xcodeの「Devices & Simulators」の「INSTALLED APPS」に開発アプリとして表示されなかった人向けでもあります。

条件として、Xcode8以前のバージョンから開発していたことが前提となります。

すでにMacのAppStoreなのでXcodeをアップグレードしてしまった場合には、Xcode9がインストールされているかと思います。

まずは、Xcode7.3.1を入手してダウンロードしてきます。

ダウンロードは

https://developer.apple.com/download/more/

などから行えると思います。

自分の開発環境は、Xcode9、Xcode8、Xcode7の3つをインストールしてあります。(アプリケーションフォルダでXcodeのリネームを行えばインストール可能です。)

複数のXcode

Xcode7.3.1に最新のiOS11またはiOS10に対応できるようにターミナルを起動して、リンクを貼ります。

※以下の内容は上記のようにリネームしたXcodeがアプリケーションフォルダにある前提の内容となります。名前が異なる場合、ご自身の環境い合わせてリンク先を変更してください。

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0\ \(15A5278f\) /Applications/Xcode7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0
ln -s  "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.1 (15B87)" "/Applications/Xcode7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.1 (15B87)"

sudoは、開いたコンソールで一度行えば続けて作業できます。

単純には、

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

以下にある10.x〜11.xの各フォルダを

/Applications/Xcode7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

以下へ、シンボリックリンクを貼る作業をコンソールで行うだけで、Xcode7.3.1でiOS11、iOS10の実機にアプリをインストール出来るようになります。

Xcode7.3.1では、AppStoreからインストール済みのアプリに対して、「Bundle Identifirer」さえ同一ならばオーバーライトが可能なようです。

Mac上に複数のXcodeをインストールしている場合、自分でどのバージョンを起動しているか明確に管理する必要がります。

Xcodeの起動は、アプリケーションフォルダから、自分が起動したいXcodeを選んで起動してください。

Xcodeのプロジェクトファイルをダブルクリック起動すると、最新のXcodeが起動されてしまいので注意が必要です。

一度、自分で任意のバージョンのXcodeを起動すれば、その後はXcodeのプロジェクトファイルをダブルクリックするだけで、起動済みのXcodeがプロジェクトファイルを開いてくれるようになります。

 

以上、どうしてもアプリを削除したくない方は、上記の方法でアプリ内部のローカルデータを継続利用を最終手段としてお試しください。

 

※ここで紹介した方法は、すべて自己の責任の範囲で参照してください。当方は一切の責任、クレームを受け付けません。

 

以上、「iPhoneアプリ開発 Xcodeで実機テストが出来なくなった場合の対処方法」でした。

 

ページ移動

ユーティリティ

スポンサーリンク


検索

エントリー検索フォーム
キーワード
例:abs修理、メーターフード自作

過去ログ

Feed