LoginSignup
21
21

More than 5 years have passed since last update.

iOS8向けEnterpriseAppに潜む罠

Last updated at Posted at 2014-10-24

EnterpriseAppのアップデート機能

EnterpriseAppはAppStoreのアップデート機能に対応していないためこちら側で実装する必要があります。
そこで、強制アップデード機能などを実装することなどもあるかと思いますが、ココに罠が潜んでいます。

アップデート機能に潜む罠

実はiOS7端末でインストールしたEnterpriseAppをiOS8にしてからアップデートするとインストールが失敗することがあります。(というか失敗します)

インストールページに貼り付けるリンクは以下のように作るのですが、

<a href="itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=http:/oursite.com/myApp.plist" id="text">

aタグをタップしてもタップしても「http:/oursite.comからインストールします」的なアラートは出るのですが 一向にインストールが始まる気配がないかと思います。

しかも、一旦アプリを削除しようものなら 二度と画面にアプリが現れることはありません

「えっ、どういうこと!?」と驚かれる方も居るかもしれません。(僕はとても驚きました)

解決法

以下のページが参考になりました。

簡単に言うと、
iOS8用のplistを用意しとくといいよ
ってことみたいですね。

具体例として、既存のサーバーにおいてあるEnterpriseAppのplistの
BundleIdentifier(com.oursite.myApp)のStringを少し改変したものをiOS8用にもう1つ作って下さい。

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

<key>bundle-identifier</key>
<string>com.mycom.MyApp.ios8fix</string>
<key>bundle-version</key>
<string>0.2.2</string>

的に改変すればいいみたいです。(僕はこれでできました)

ココではダウンロードの際に監視するplistに記載されているBundleIDを偽装しているようです。
インストール後はローカルのBundleIDを見るので、アプリが複数インストールされるという自体にはならずに済みます。

新たな問題

上記の方法はあくまでも一時的に対処するためのものです。
社内のiOS7ユーザーがiOS8用に作ったplistを利用してインストールした後にiOS8にアップデートしたら同様の問題が生じます。

「社内の端末のバージョンは勝手に上げるな」と大きな声で言うのが一番の解決策なのかもしれないですね。

周知と検証は徹底すべきと痛感した次第です。

21
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
21