<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>カスタムApp &#8211; MICSS</title>
	<atom:link href="https://20230101.www.micss.biz/category/customapp/feed/" rel="self" type="application/rss+xml" />
	<link>https://20230101.www.micss.biz</link>
	<description>“低コスト”で“スピーディ”なモバイル導入をご支援</description>
	<lastBuildDate>Fri, 06 Jan 2023 00:33:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.25</generator>
	<item>
		<title>ADEPからADPに移行する時に知っておくと良い10個の豆知識</title>
		<link>https://20230101.www.micss.biz/2022/11/14/5649/</link>
		<pubDate>Mon, 14 Nov 2022 01:18:17 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[ADEP]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://20230101.www.micss.biz/?p=5649</guid>
		<description><![CDATA[2022年はADEP更新ができなくなる可能性もありましたが、意外に更新できている例もあるようです。 ただやっぱりこの先は分からないということで、予め備えておきたいと考える企業様に、InHouseからカスタムAppへの移行 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>2022年は<a href="/2022/04/18/5188/">ADEP更新ができなくなる可能性もありました</a>が、<a href="/2022/09/19/5528/">意外に更新できている例もある</a>ようです。</p>
<p>ただやっぱりこの先は分からないということで、予め備えておきたいと考える企業様に、InHouseからカスタムAppへの移行について質問を頂くことが増えてきました。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/11/20221114_inhouse2customapp.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(InHouseからカスタムAppへの移行とはつまりADEPからADPへの移行を意味する)</span></p>
<p>開発会社視点で真っ先に気になるのはADEPに代わって使うことになるADPです。そこで本稿では、ADEPの理解がある方々向けにADPの豆知識を幾つかご紹介します。以下一覧です。</p>
<ol>
<li><a href="#1">App Store には公開領域と非公開領域がある</a></li>
<li><a href="#2">ADEP契約済み企業でもADPは新規契約が必要</a></li>
<li><a href="#3">ADEPとADPは排他的ではなく法人として両契約可能</a></li>
<li><a href="#4">作成できる配布用証明書の数がADEPより1つ多い</a></li>
<li><a href="#5">配布用証明書の有効期間は3年間で一緒</a></li>
<li><a href="#6">証明書の期限が切れたりrevokeしてもアプリは起動し続ける</a></li>
<li><a href="#7">ADPの契約が切れるとAppStoreからアプリが消える</a></li>
<li><a href="#8">ADPの更新には審査がない</a></li>
<li><a href="#9">カスタムAppの審査はそれほど難しくない</a></li>
<li><a href="#10">無審査でのアプリ配布が全くできなくなるわけではない</a></li>
</ol>
<p>1つ1つはちょっとしたことですが、あらかじめ知っておくと知識ゼロで始めるよりずっと良いカスタムApp移行を行うことができます。</p>
<div id="1">&nbsp;</div>
<h3>1. App Store には公開領域と非公開領域がある</h3>
<p><strong>カスタムAppとは実はAppStoreアプリ</strong>です。「え？AppStoreって公開されるのでは？」と思った方はこれを機会に是非、認識を改めて下さい。</p>
<p><strong>AppStoreには企業内用途の非公開アプリのために非公開領域が存在する</strong></p>
<p>のです。実は2010年頃からそうです。最近になって整備されたのではなく、昔からあったのです。ただADEPが便利すぎて単に使われていなかっただけに過ぎません。昔はCustomB2Bと呼ばれていました。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/11/20221114_customb2b.png" alt="" width="600" class="alignnone" /><br /><span class="caption">(2014年頃。iTunes Connect (現在の App Store Connect)にCustomB2Bで非公開アプリ申請しようとする様子)</span></p>
<p>InHouseアプリからカスタムApp化するとは、つまり<strong>AppStoreアプリにするということ</strong>であり、ゆえにADPの契約が必要になるとうわけです。</p>
<div id="2">&nbsp;</div>
<h3>2. ADEP契約済み企業でもADPは新規契約が必要</h3>
<p>ADPは<strong>新たに</strong>契約する必要があります。</p>
<p>ADEPの契約がADPの契約に切り替わるわけではない点に注意して下さい。また、いわゆるSaaSサービスの契約プランではないため、ADEPからADPにプランを落とすといった関係性のものでもありません。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/11/20221114_hexnode-price.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(あるMDMのプラン表。ADPとADEPはこのようなプラン的な考え方とは全く異なる)</span></p>
<p>ADEPとADPは名前は似てますが<strong>全く別物の扱い</strong>ですので、たとえADEP契約済みであってもADPは新規に契約することになります。</p>
<p>Appleが気を利かせてADP契約も手配してくれるとか、Appleの認定リセラー企業が契約代行してくれるといった事もありません。自社が主体となって新たに契約手続きを行います。</p>
<div id="3">&nbsp;</div>
<h3>3. ADEPとADPは排他的ではなく法人として両契約可能</h3>
<p>ADEPとADPはそれぞれ全く別の契約で、かつ<strong>独立</strong>しています。</p>
<p>従って、ADEP契約期間中でもADP契約が可能です。また、ADPを契約するとADEP契約が解除されてしまうといったこともありません。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/11/20221114_adepadp.jpg" alt="" width="300" class="alignnone" /><br /><span class="caption">(Apple Developer 画面でのアカウント切り替えの様子。ADEPには頭にEnterpriseの表記がある。併存可能なことが分かる)</span></p>
<div id="4">&nbsp;</div>
<h3>4. 作成できる配布用証明書の数がADEPより1つ多い</h3>
<p>ADEPでの配布用証明書(InHouseアプリの署名に必要な証明書)は、最大2つでした。2つ作成済みの状態で新規作成しようとすると以下のように選択できません。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/11/20221114_maximumcert.jpg" alt="" width="500" class="alignnone" /></p>
<p>一方、ADPでは配布用証明書(AppStore申請用アプリの署名に必要な証明書)は、<strong>最大3つ</strong>まで作成することができます。<a href="https://help.apple.com/xcode/mac/current/#/dev3a05256b8" rel="noopener" target="_blank">Appleの公式ドキュメント</a>にも記載がありますので確認してみて下さい。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/11/20221114_numofcert.jpg" alt="" width="600" class="alignnone" /></p>
<p>複数の秘密鍵や証明書に分けて管理してきた企業の場合、ADPでは運用の柔軟性が向上するでしょう。</p>
<div id="5">&nbsp;</div>
<h3>5. 配布用証明書の有効期間は3年間で一緒</h3>
<p>配布用証明書の<strong>有効期間は3年間</strong>で、ADEPでもADPでも一緒です。</p>
<p>Provisioning Profile の1年更新とセットにして毎年証明書も更新している企業をたまに見聞きしますが、ADPへの移行を機に更新手順を見直しましょう。配布用証明書の有効期間はADEPもADPも3年です。</p>
<div id="6">&nbsp;</div>
<h3>6. 証明書の期限が切れたりrevokeしてもアプリは起動し続ける</h3>
<p>InHouseアプリでは、証明書期限が切れたり証明書をrevokeするとアプリが起動しなくなりますが、ADPによるAppStoreアプリでは、証明書期限が切れてもrevokeされても起動し続けます。</p>
<p>AppStore申請用の証明書で署名し申請通過したアプリは、<strong>一度端末にインストールされたなら証明書の期限や有効性に関係なく起動し続けることができる</strong>のです。</p>
<p>審査通過後に証明書のことを気にしなくてよくなるのは、ADEPからADPに移行するメリットです。オペレーションミスでアプリが起動しなくなるといった惨劇も避けられます。(証明書の状態に関係なく起動可能な理由は解説すると長くなるので省略します)</p>
<div id="7">&nbsp;</div>
<h3>7. ADPの契約が切れるとAppStoreからアプリが消える</h3>
<p>ADPの契約更新を忘れると、ADP契約期間終了日以降、ユーザはアプリをダウンロードすることができなくなります。(起動できなくなるのではない)</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/11/20221114_adpexpired.png" alt="" width="400" class="alignnone" /><br /><span class="caption">(ADPの契約終了日からカスタムAppを端末にインストールできなくなる)</span></p>
<p>ABM で一括購入してMDM経由で配信される監理対象ライセンスでも、ABMから取得する引き換えコードでも同じです。アプリの存在がないものとみなされると考えて下さい。</p>
<p>しかし、ADP契約を更新すると再びダウンロードできる状態に戻すことができます(ただし1年以内)。カスタムAppに移行したらADP契約更新に細心の注意をはらいましょう。</p>
<p><strong>端末にインストール済みのアプリは、たとえADP契約が期間終了しても起動し続けることが可能</strong>です。詳しくは<a href="https://developer.apple.com/jp/support/renewal/" rel="noopener" target="_blank">公式情報</a>を確認して下さい。</p>
<div id="8">&nbsp;</div>
<h3>8. ADPの更新には審査がない</h3>
<p><a href="/2022/04/18/5188/">別の投稿</a>で紹介した通り、2022年春以降、大半の企業ではADEP更新にAppleの審査が必要となりました。一方、<strong>ADPの更新に審査は不要</strong>です。これは昔も今も変わりません。</p>
<div id="9">&nbsp;</div>
<h3>9. カスタムAppの審査はそれほど難しくない</h3>
<p>iOSアプリ黎明期、AppStore審査は厳しく理不尽なことがままありました。審査拒否された理由を共有する投稿サイトまであったぐらいです。(<a href="https://www.macotakara.jp/iphone/entry-2632.html" rel="noopener" target="_blank">参考</a>。約14年前の紹介記事)</p>
<p>その頃の「審査は厳しい」という噂情報のまま、今でもAppStoreの審査はとても難しいと誤解している方が多くおられます。未体験であれば仕方がないことです。分からないことは、普通怖いものですから。</p>
<p>ただ知れば怖くなくなります。審査基準を知るために <a href="https://developer.apple.com/jp/app-store/review/guidelines/" rel="noopener" target="_blank">App Store Review ガイドライン</a>を関係者全員で事前に一読しておくと良いでしょう。可能なら<a href="https://developer.apple.com/app-store/review/guidelines/" target="_blank">英語で</a>読むことが推奨されます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/11/20221114_appstorereviewguideline.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(ガイドラインは度々更新されるが、日本語版への反映は遅れることが多い)</span></p>
<p>審査基準はアプリ黎明期に比べるとかなり明瞭で、従っていさえすれば、理不尽なreject(審査で落ちること)を食らうことは余りありません。また、TestFlight の外部テストを使えば、事前に審査の感触を掴むことも可能です。</p>
<div id="10">&nbsp;</div>
<h3>10. 無審査でのアプリ配布が全くできなくなるわけではない</h3>
<p>無審査配布の一形態であるAdHocをADPでも使うことができます。ADEPでのAdHocと条件は同じで、</p>
<ul>
<li>事前登録済みUDIDの端末のみで起動可能</li>
<li>登録可能なUDIDの数はiPhone/iPad/AppleTV/AppleWatchで各100台</li>
</ul>
<p>となります。</p>
<p>これまで ADEPの InHouse アプリだけを使ってきたという場合、AdHocという配布手段を知らない方もおられるでしょう。実は、無審査配布には InHouse と AdHoc の2種類があります。前者はADEPでしか使えませんが、後者はADEP/ADPの両方で使えます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/11/20221114_adhoc.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(<a href="https://developer.apple.com/jp/programs/enterprise/" rel="noopener" target="_blank">ADEP公式ページ</a>でも AdHoc が非公開配布の選択肢であると述べている)</span></p>
<p>上記の条件が許容できるのなら、AdHoc配布も検討する価値があります。また、ADEPのInHouseアプリを社内テスト用の配布にしか使っていないのなら、TestFlightの内部テストに移行できます。ADPに移行したからといって、全てのアプリで常にAppleの審査が必要になるというわけではないのです。</p>
<p>&nbsp;</p>
<p>以上、ADEPからADPに移行する方に向けてADPの豆知識を紹介してみました。ADPへの移行の際に参考にして下さい。</p>
]]></content:encoded>
			</item>
		<item>
		<title>そろそろADEP契約更新ができなくなるかも知れない…その後(1)</title>
		<link>https://20230101.www.micss.biz/2022/09/19/5528/</link>
		<pubDate>Sun, 18 Sep 2022 22:00:55 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[ADEP]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://20230101.www.micss.biz/?p=5528</guid>
		<description><![CDATA[2022年4月に以下のような投稿をしました。 そろそろADEP契約更新ができなくなるかも知れない 投稿以後、ADEP契約更新が例年のように進められないという声が幾つも届いています。数ヶ月が経過してみて、契約更新可否につい [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>2022年4月に以下のような投稿をしました。</p>
<p><a href="/2022/04/18/5188/">そろそろADEP契約更新ができなくなるかも知れない</a></p>
<p>投稿以後、ADEP契約更新が例年のように進められないという声が幾つも届いています。数ヶ月が経過してみて、契約更新可否について興味深い傾向が見えてきたほか、拒否された後のInHouseアプリの振る舞いについて新たな情報を得ましたので、2回に分けてシェアしたいと思います。</p>
<p>&nbsp;</p>
<h3>ADEPの契約は意外に更新できている</h3>
<p>2022年4月の時点で、一律全ADEP契約が拒否されているのではないうえに基準が不明瞭…というなんとも気持ち悪い状況でした。</p>
<p>しかしAppleの InHouse アプリに対する態度硬化が加速してる流れから、拒否が基本で、更新可能なのは例外的ケースだろうと見ていました。それで<a href="/2022/04/18/5188/">以前の投稿</a>では、90日前のメールをトリガに動き出したほうが良いかも知れないと見解を記していた次第です。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/09/20220919_adep_expired_timeline.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(90日前から動き出せば対応期間を長く確保できる)</span></p>
<p>それから数ヶ月。</p>
<p>実際に見えてきたのは、<strong>ADEPは意外に更新できている</strong>という状況です。<a href="https://developer.apple.com/jp/programs/enterprise/" rel="noopener" target="_blank">ADEPの公式ページ</a>に記載されている条件を満たしていれば、おおよそADEPの更新に成功しているように見えます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/09/20220919_adep_recuirements.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(従業員が100人に満たない要件未達な組織や、従業員以外が使うアプリに使っている不正利用はやはり拒否される)</span></p>
<p>ただ、条件さえ満たせばすんなり更新できるかというとそうでもなく、以下のようなステップを踏むことが多いようです。</p>
<ol>
<li>ADEP契約終了90日前に更新とカスタムApp移行の案内メールが届く</li>
<li>更新申請に際し数十項目のフォーム入力を求められる (何に使っているか等)</li>
<li>審査にかけられ暫く放置される</li>
<li>ADEP契約終了日直前になってもAppleから連絡が来ない</li>
<li>突然ADEP契約終了日が延期されて審査中状態が続く</li>
<li>審査を通過しクレジットカード決済を経て更新完了する</li>
</ol>
<p>このようにADEP更新には心穏やかでない状態が待ち受けてます。しかもやっかいなのは、全ての企業がこの通りに進むわけではなく、企業によって若干異なっていること。</p>
<p>3,4 がなく審査を通過して6に行くパターンもあれば、3(審査待ち)に2週間や1ヶ月の期間を要したりと所要期間はバラバラ。一方拒否される場合は余り待つことがなく1週間程度で返ってくる傾向にあるようです。また、更新成功の変則的ケースとして 4→5→4→5 と回答待ち＆強制延期が2周するパターンも見受けられました。</p>
<p>要するにやってみないと分からないということですね。困ったものです。</p>
<p>&nbsp;</p>
<h3>これからどうすべきか</h3>
<p>上記状況をふまえた弊社見解は、</p>
<ul>
<li>明らかなADEP契約違反や条件未達でなければ過度に神経質になる必要はないかも</li>
<li>が、いずれ拒否されることを見据えてアプリの今後を考えておいたほうが安心かも</li>
</ul>
<p>です。</p>
<p>やはり InHouse アプリからの脱却は推奨と考えます。Appleが毎年少しずつ更新条件を厳しくしていくかも知れませんし、「1年の猶予は与えたよね？なぜ何もしなかったの？」と2023年に更新拒絶を強行する可能性もゼロではないでしょう。無論、今まで通り毎年更新し続けられる可能性も全否定はできません。</p>
<p>よくよく考えておきたいのは、Appleの気持ち次第というモヤモヤした状況を続けるのは、業務用ソフトウェアのあるべき姿なのかということです。毎年毎年ドキドキするぐらいであれば、早めに手を打つほうが健全でしょう。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/09/20220919_adep_summary.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(<a href="https://developer.apple.com/jp/programs/enterprise/" rel="noopener" target="_blank">ADEPの公式ページ</a>の選択範囲の文言に注意。十分に対応できるという判断はApple次第)</span></p>
<p>エンドユーザ企業においては、社内に開発部隊がいて内製しているなら、カスタムAppに移行しましょう。端末台数が少ないならAdHocです。もしWebアプリにガワをかぶせたに過ぎないならこの際アプリをやめ、WebClipのMDM配信に切り替える事も視野に入れましょう。以下を参考にして下さい。</p>
<ul>
<li><a href="https://www.micss.biz/2022/01/10/4968/" rel="noopener" target="_blank">業務用WebシステムのiOS用クライアントアプリ開発は本当に必要か？を考える (前編)</a></li>
<li><a href="https://www.micss.biz/2022/01/24/5011/" rel="noopener" target="_blank">業務用WebシステムのiOS用クライアントアプリ開発は本当に必要か？を考える (後編)</a></li>
</ul>
<p>テスト用途で配布が便利だからという理由だけでInHouseを使っているなら、面倒臭がらずに<a href="https://developer.apple.com/jp/testflight/" rel="noopener" target="_blank">TestFlight</a>を学習して移行しましょう。TestFlightに慣れると、InHouseビルドをテスト用配布することが逆に面倒になるぐらい便利です。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/09/20220919_testflight.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(TestFlightはもう10年の歴史がある洗練されたテストツール。使わない手はない)</span></p>
<p>また、受託開発会社においては、いつまでもカスタムAppの経験がない状態が続けば、いずれ業務用iOSアプリの受託が厳しくなる未来を迎えることになる可能性も考慮に入れて下さい。</p>
<p>新規はもちろん、ADEPからの移行組エンドユーザ企業の多くが目にすることになる<a href="https://support.apple.com/ja-jp/guide/apple-business-manager/welcome/web" rel="noopener" target="_blank">ABMユーザガイド</a>には、カスタムAppなるものの手はずをデベロッパーがしてくれると明記されています。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/09/20220919_abm_customapp.jpg" alt="" width="600" class="alignnone" /></p>
<p>エンドユーザ企業にして見れば、Appleが「デベロッパがやります」と書いているカスタムAppについて全く何も知らない開発会社に発注したいと思うでしょうか。業務用iOSアプリの受託開発事業を行う企業は、ADP/ABM/MDMを自社で一通り揃え、カスタムAppについて学習しておくことが推奨されます。本サイトの<a href="https://20230101.www.micss.biz/category/customapp/">カスタムAppに関する全投稿</a>を参考にして下さい。</p>
<p>&nbsp;</p>
<p>本稿ではADEPの更新可否が今どうなっているかについて書きました。次回投稿では、実際にADEPの契約を拒否されたケースで見られた興味深い現象について記そうと思います。</p>
]]></content:encoded>
			</item>
		<item>
		<title>業務用端末にインストールされているアプリのBundleIDを調べる方法</title>
		<link>https://20230101.www.micss.biz/2022/05/02/5254/</link>
		<pubDate>Mon, 02 May 2022 07:32:08 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[Apple Configurator]]></category>
		<category><![CDATA[MDM]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://20230101.www.micss.biz/?p=5254</guid>
		<description><![CDATA[iOSは各アプリを BundleID と呼ばれる識別子で区別しています。 (あるアプリの例。AppStoreへのアプリ申請では最初にBudnelIDを指定することになる) 業務用iOS関連の作業では、ときおりiOS端末に [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>iOSは各アプリを BundleID と呼ばれる識別子で区別しています。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/05/20220502_bundleid_onappstore.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(あるアプリの例。AppStoreへのアプリ申請では最初にBudnelIDを指定することになる)</span></p>
<p>業務用iOS関連の作業では、ときおりiOS端末にインストールされているアプリの BundleId を知りたくなることがあります。構成プロファイルを作成したり、MDMでアプリケーション関連の操作をしたり、Apple Configurator2 を触っているような時です。</p>
<p>自分が開発を担当しているアプリならそのBundleIDを記憶しているでしょうが、そうでない場合はどうやってBundleIDを調べるのでしょうか。本稿ではその方法を幾つか紹介します。</p>
<p>&nbsp;</p>
<h3>Xcode (development, InHouse, AdHoc)</h3>
<p>手元にMacがあり開発環境のXcodeがインストールされているなら、iOS端末をMacにUSB接続した上で Xcode の Devices and Simulators の画面を見るとすぐに分かります。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/05/20220502_xcode_devicessimulators.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(Xcode を起動した状態で、command + shift + 2 のショートカットが便利)</span></p>
<p>サイドバーで見たいiOS端末を選択すると、INSATLLED APPS の蘭にインストールされているアプリの一覧が表示されます。Identifier の列がアプリの BundleID です。</p>
<p>AppStoreからインストールされたアプリ(公開App/カスタムApp/非表示App/TestFlight)は基本的に表示されません。</p>
<p>&nbsp;</p>
<h3>MDM (InHouse, AppStore)</h3>
<p>対象となるiOS端末がMDMの管理下にあるならMDMの管理画面を見るのが一番手っ取り早いでしょう。</p>
<p>どんなMDMにも端末の詳細情報画面があり、その中でインストールされているアプリの一覧が表示されている筈です。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/05/20220502_mdm_listofbundleid.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(MDMは管理化の端末にインストールされているアプリ一覧を把握している)</span></p>
<p>アプリの種類によらず全て確認できます。MDMによっては、MDMで配信したアプリのみを表示する設定ができる場合もあります。(BYOD端末の場合、個人がその端末で使用するアプリを見ることは適当でないため)</p>
<p>&nbsp;</p>
<h3>cfgutil (development, InHouse, AdHoc, AppStore)</h3>
<p>Apple Configuratoe2 に付属している cfgutil を使って確認することもできます。cfgutil の詳細は<a href="/2021/10/11/4488/">Apple Configurator2 付属のコマンドラインツール cfgutil の使い方</a>の投稿をご覧下さい。</p>
<p>iOS端末をmacにUSB接続し、ターミナルを起動して、cfgutilの <strong>list</strong> コマンドで端末のECIDを特定します。</p>
<pre>
$ cfgutil list
</pre>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/05/20220502_cfgutil_terminal.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(cfgutilの大半のコマンドで ECID は必須となる)</span></p>
<p>次にECIDを引数に指定して以下のように <strong>get installedApps</strong> コマンドを実行すると、インストールされたアプリの一覧が出力されます。数秒程度待った後に、ECIDで指定された端末にインストールされているアプリ一覧が表示されます。</p>
<pre>
$ cfgutil -e [ECID] get installedApps
</pre>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/05/20220502_cfgutil_getinstalledapps.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(出力テキストのアプリ名がエスケープされないため、加工しやすいテキストとは言えない)</span></p>
<p>cfgutil コマンドでは、development, InHouse, AdHoc だけでなく、AppStore からインストールしたアプリも表示されます。</p>
<p>&nbsp;</p>
<h3>iTunes Search API (AppStore)</h3>
<p>AppStoreに公開されているアプリに限りますが、<a href="https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/index.html" rel="noopener" target="_blank">iTunes Search API</a> を使ってアプリidから BundleID を調べることもできます。</p>
<p>まずアプリidを調べる必要がありますが、アプリのURLが分かるならそのURL末尾の数字がアプリidです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/05/20220502_itunessearchapi.jpg" alt="" width="600" class="alignnone" /></p>
<p>アプリのURLを探すには、アプリ名とiOSでググると良いでしょう。あるいは、マーケティング担当者向けに用意されている <a href="https://tools.applemediaservices.com/app-store" rel="noopener" target="_blank">App Store Marketing Tools</a> を使うこともできます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/05/20220502_appstoremarketingtools.jpg" alt="" width="600" class="alignnone" /></p>
<p>検索ボックスにアプリ名を入れると、アプリのURLやアイコン画像等の情報を確認することができます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/05/20220502_syncnelresources.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(アプリアイコンの高解像度画像ファイルをダウンロードすることもできる)</span></p>
<p>アプリidを特定したら、ターミナルから以下のように入力すると BundleID を特定できます。(iTunes Search API は JSON を返すため、jqコマンドで必要な箇所のみに絞り込んでいます)</p>
<pre>
% curl -s 'https://itunes.apple.com/lookup?id=[アプリid]' | jq -r '.results[0].bundleId'
</pre>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/05/20220502_curlitunessearchapi.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(jqコマンドについては<a href="https://stedolan.github.io/jq/" rel="noopener" target="_blank">公式ページ</a>を参照のこと)</span></p>
<p>なお iTunes Search API を使う方法は InHouse アプリでは使えません。AppStoreに登録されないアプリだからです。またカスタムAppでは、アプリidは付与されるものの使えませんのでご注意下さい。</p>
<p>&nbsp;</p>
<p>以上、アプリのBundleIDを調べる方法を紹介しました。BundleID(バンドルID)を調べる必要がある時に、試してみて下さい。</p>
]]></content:encoded>
			</item>
		<item>
		<title>そろそろADEP契約更新ができなくなるかも知れない 〜カスタムAppへの移行を急ぐべき理由〜</title>
		<link>https://20230101.www.micss.biz/2022/04/18/5188/</link>
		<pubDate>Sun, 17 Apr 2022 22:00:57 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[ADEP]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://20230101.www.micss.biz/?p=5188</guid>
		<description><![CDATA[(最終更新日 : 2022/10/3) その時が迫っているのかも知れません。 上図はあるADEP契約企業の ADEPの契約更新が拒否され期限切を迎えてしまった様子です。あるInHouseアプリを業務で常用している企業で、 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>(最終更新日 : 2022/10/3)</p>
<p>その時が迫っているのかも知れません。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_adep_expired.jpg" alt="" width="600" class="alignnone" /></p>
<p>上図はあるADEP契約企業の <strong>ADEPの契約更新が拒否され</strong>期限切を迎えてしまった様子です。あるInHouseアプリを業務で常用している企業で、突然ADEP更新を拒否されこの状況になってしまいました。</p>
<blockquote>
<p style="margin-bottom:0px;">Software associated with this membership will continue to run for the next XX days.</p>
</blockquote>
<p>とあり、あとXX日で InHouse アプリが起動できなくなると警告されています。(XXには具体的な数字が入り毎日1ずつ減っていく)</p>
<p><a href="/2022/03/21/5164/">以前の投稿</a>でも紹介した通り、ADEP契約が切れると<strong>期限日から91日目以降はInHouseアプリが動かなくなります</strong>。企業によっては最悪の場合、業務が停止しかねない事態ですね。これを避けるには期限日から90日以内に原則カスタムAppに移行しなければなりません。</p>
<p>意図してADEP契約更新を止めて期限日を迎えているのなら良いのですが、例年通り更新しようと思って拒否されてしまった場合は困った事態になります。</p>
<p>そこで本稿では、そうした状況に備えられるようにするため、実際にADEPを拒否された事例とそうでない事例を紹介するとともにADEP更新契約の2022年における実態とその対策について解説します。</p>
<p>&nbsp;</p>
<h3>全ADEP契約企業が置かれている状況のおさらい</h3>
<p>審査もなく、配布端末数の制限もない。ADEPによるInHouseアプリは、業務用アプリとしてこれ以上ないほど使い勝手がよく都合の良い配布形式でした。</p>
<p>ただ、<a href="/2020/06/19/1774/">ADEPはもう取得することができないと諦めたほうが良い理由</a>の投稿で解説した通り、2020年頃から新規のADEP契約締結は事実上不可能となっていました。加えて、既存の契約済み企業もいつ契約更新不可となるか分からないという状況にあったのです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_inhouse_deploymentdetail.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(ADEPでのBundleID詳細画面では、InHouseを使う理由を明記する必要があった)</span></p>
<p>新規契約は実質不可になっても、ADEP契約済み企業は更新はできていたわけです。まだまだ InHouse アプリは使い続けられる。そう思って多くの企業が更新し続けてきたのが2020年、2021年でした。</p>
<p>が、2022年1月末にAppleが動きます。<a href="https://developer.apple.com/jp/support/unlisted-app-distribution/" rel="noopener" target="_blank">非表示App(Unlisted App)</a> という新しい仕組みを発表したのです。詳細は<a href="https://20230101.www.micss.biz/2022/02/07/5041/">非表示App(Unlisted App)とは何か</a>の投稿で紹介した通りですが、この非表示App(Unlisted App)はある意味、Appleが自らADEPにとどめを刺す最後の一手でした。</p>
<p>詳細は別の投稿に譲りますが、非表示App(Unlisted App)の登場によって「ABMとMDMの契約は現実的ではない、だからADEPが必要なんだ」という、ADEPとInHouseを正当化する唯一の理屈が封じられたのです。Apple は「それならADPで非表示App(Unlisted App)にしなさい。ADEPはいらないよね」と言えるようになりました。</p>
<ul>
<li>原則、業務アプリもADPでAppStoreに申請</li>
<li>非公開にしたいならカスタムApp</li>
<li>MDMやABMの都合でカスタムAppが無理なら非表示App</li>
<li>テスト用ならAdHocかTestFligth</li>
</ul>
<p>これがAppleの結論です。非表示App の仕組みが発表された直後に、冒頭で紹介したようなADEP更新を拒否される事例が出てきたのは偶然ではないでしょう。</p>
<p>もう、Apple にADEPが必要だと言えなくなりました。2010年からエンタープライズiOSの世界にいる筆者も、ADEPを正当化する理屈を組み立てるのは完全に不可能であると断言できます。Apple は本気でADEPを潰そうとしていると感じます。(自分で作ったのに！)</p>
<p>&nbsp;</p>
<h3>ADEP契約更新が拒否される条件</h3>
<p>冒頭で紹介した例のように更新拒否される条件は不明です。Appleから公式な発表はありません。ただ、弊社が得ている事例情報では</p>
<ul>
<li>Appleに審査されると不都合な実装をしているアプリだが毎日業務で使っている</li>
<li>ADEPの契約から5年以上経過しており例年何の問題もなく更新してきた</li>
</ul>
<p>というInHouse利用常態化＆ミッションクリティカルなケースでさえ、明確な理由の提示なく契約拒否されてしまっています。<a href="https://developer.apple.com/jp/programs/enterprise/" rel="noopener" target="_blank">ADEP公式ページ</a>の対象条件を満たした企業であってもです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_adep-update_rejected.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(更新を拒絶された直後。期限までは操作が可能だがADPに移行するよう促される)</span></p>
<p>ただ全てのADEP契約の更新が2022年から不可になったというわけではなく、</p>
<ul>
<li>iDEP(ADEPの前身)の契約条件が緩和された時期に契約できていたアプリ開発会社</li>
<li>業務用アプリというよりも単に社内のテスト用ビルドの配布手段として便利だから使用中</li>
</ul>
<p>といった緩い利用状況の企業が更新できたという例も情報として届いています。中には<a href="https://developer.apple.com/jp/programs/enterprise/" rel="noopener" target="_blank">ADEP公式ページ</a>の対象条件を満たしていない企業の例すらあります。</p>
<p>本来なら、前者が更新できて後者が不可であるべきでしょう。なぜそうなっていないのか理由は分かりません。ただハッキリしているのは、<strong>InHouseアプリが使えなくなれば業務停止しかねない企業であっても、問答無用にADEP更新を拒否される事例が現れて</strong>きているということです。</p>
<p>&nbsp;</p>
<h3>ADEP契約更新はどのように拒否されるのか</h3>
<p>通常、ADEPの契約期日の30日前には以下のようなメールが届きます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_notify_expiration.jpg" alt="" width="400" class="alignnone" /></p>
<p>そして <a href="http://developer.apple.com" rel="noopener" target="_blank">developer.apple.com</a> にADEPアカウントでサインインすると以下のように表示されます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_adep_renew_membership.jpg" alt="" width="600" class="alignnone" /></p>
<p>ここで Renew Membership ボタンをクリックするとクレジットカードによる決済に案内され、支払いができれば更新完了、例年ならただそれだけのことです。ADP(Apple Developer Program)を契約している方には、金額は違えど馴染みのあるフローでしょう。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_adep-update_order-confirm.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(ADEPの更新もただただ支払いをするだけだった)</span></p>
<p>しかし、ADEP契約更新時に以下のようなフォームが現れる場合が出始めました。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_adep_request_form.jpg" alt="" width="600" class="alignnone" /></p>
<p>なぜ InHouse が必要なのか、誰が管理してるのか、どのように配布しているのか、等々ですね。<a href="/2020/06/19/1774/">ADEPはもう取得することができないと諦めたほうが良い理由</a>の投稿でも紹介した、BundleID内の自己申告項目にも似ています。</p>
<p>必要事項を入力して submit した後、Apple からADEP更新審査の回答が来ます。拒否されれば、前述の通り以下のような画面となりADEP更新の道が完全に閉ざされます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_adep-update_rejected.jpg" alt="" width="600" class="alignnone" /></p>
<p>警告文の末尾には、</p>
<blockquote>
<p style="margin-bottom:0px;">Learn how to transition to the Apple Developer Program</p>
</blockquote>
<p>というリンクが貼られていて、以下の<a href="https://developer.apple.com/jp/support/switching-to-the-apple-developer-program/" target="_blank">ページ</a>に誘導されます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_swtich_to_adp.jpg" alt="" width="600" class="alignnone" /></p>
<p>InHouseいらないよね？カスタムAppに移りましょう…と、取りうる手段や必要なものを解説してくれます。</p>
<p>&nbsp;</p>
<h3>ADEP契約更新が拒否される兆候？</h3>
<p>ADEPの契約更新が認められる場合と拒否される場合とで、明らかな相違点があります。それはAppleからADEP更新に関して届くメール。</p>
<p>以下は、拒否された企業に宛てられた、<strong>契約期日の90日前</strong>のメールです。内容は先に紹介した<a href="https://developer.apple.com/jp/support/switching-to-the-apple-developer-program/" target="_blank">Apple Developer Programへの切り替え</a>の内容とほぼ同じです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_adep-update_hunch_for_reject.jpg" alt="" width="400" class="alignnone" /></p>
<p>一方、更新が認められた企業には、例年通り<strong>契約期日の30日前</strong>に以下のようなメールが届いています。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_notify_expiration.jpg" alt="" width="400" class="alignnone" /></p>
<p>Renew Now と更新を促すリンク付き。例年はこの形式なのです。90日も前にメールが届くことはまず無かったことです。</p>
<p>このように例年とは違う内容で、且つ、かなり早いタイミング(90日前)でADEPの更新に関するメールがAppleから届いた場合、ADEPの更新可否がひょっとしたらひょっとするかも？と警戒しても良いかも知れません。</p>
<p>&nbsp;</p>
<h3>全ADEP契約企業にお勧めしたいこと</h3>
<p>ADEP契約更新は、余程の理由がない限りいずれ拒否される時がくると考えましょう。Appleのここ2,3年の動きを総括すると、ADEPをもはや過去のものにしようとしている、以外の結論は導けないからです。</p>
<p>全てのADEP契約企業におかれては、InHouse アプリが使えなくなる前提で開発体制や配布・運用体制を見直すことをお勧めします。もし諸事情ですぐに動けないのなら、最低でもADEPの契約期日を確認し、その90日前に上記で紹介したメールが Account Holder 宛に届いていないか確認するぐらいはしても良いでしょう。</p>
<p>もしメールが届けば、カスタムApp化に動く時かも知れません。メール受信からADEP期限到来までは90日。そして、更新拒否されればADEP期限切れ後から90日間のみInHouseアプリを起動可能です。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_adep_customeapp_timeline.jpg" alt="" width="500" class="alignnone" /></p>
<p>つまり、上記で紹介したメールが届いた直後にすぐ動けば、<strong>最大で180日間の準備期間を持てる</strong>ということです。</p>
<p>早いにこしたことはありません。</p>
<p>期限日直前にいざ申請してみたら拒否された…なんて展開を想像してみて下さい。90日強でカスタムApp化と配信とテスト、運用切替まで滞りなく進めるのは難しいでしょう。InHouseで業務アプリを開発・運用してきた多くの方にとって、ADPでアプリをAppStore申請することすら初めてだったりすることも多いからです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/04/20220418_appstoreconnect.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(App Store Connect で申請する様子。InHouseアプリ運用とは勝手がかなり違う。経験がなければ戸惑うこと必至)</span></p>
<p>前述した通り更新が可能な時もありますが、その場合は先手を打てて良かったと解釈しましょう。いずれカスタムApp化はやらなくてはならないのですから。ADEPが廃止され InHouse アプリを使えなくなるのは時間の問題です。</p>
<p>&nbsp;</p>
<p>以上、ADEPの契約更新拒否について解説しました。個人的にはInHouseな業務アプリがあるなら、今すぐカスタムApp化することを強くお勧めします。</p>
<p><strong>(追記)</strong> その後、半年経過したADEP契約更新状況について以下にまとめました。</p>
<ul>
<li><a href="https://20230101.www.micss.biz/2022/09/19/5528/">そろそろADEP契約更新ができなくなるかも知れない…その後(1)</a></li>
<li><a href="https://20230101.www.micss.biz/2022/10/03/5553/">そろそろADEP契約更新ができなくなるかも知れない…その後(2)</a></li>
</ul>
<p>併せてご覧下さい。</p>
]]></content:encoded>
			</item>
		<item>
		<title>業務用アプリの配布方法 全7種類一覧</title>
		<link>https://20230101.www.micss.biz/2022/03/07/5113/</link>
		<pubDate>Sun, 06 Mar 2022 22:00:11 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[ABM]]></category>
		<category><![CDATA[ADEP]]></category>
		<category><![CDATA[MDM]]></category>
		<category><![CDATA[Webクリップ]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://20230101.www.micss.biz/?p=5113</guid>
		<description><![CDATA[(最終更新日 : 2023/1/5) 業務用アプリを配布する方法は、全て列挙すると実に7種類もあります。どの配布方法を選ぶべきかはアプリの特性や各社の状況によりますので、一通り配布方法を知っておくのは良いことです。 (用 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>(最終更新日 : 2023/1/5)</p>
<p>業務用アプリを配布する方法は、全て列挙すると実に<strong>7種類</strong>もあります。どの配布方法を選ぶべきかはアプリの特性や各社の状況によりますので、一通り配布方法を知っておくのは良いことです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/03/20220307_deployment-flow.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(用途やアプリに応じて様々な配布方法がある)</span></p>
<p>そこで本稿では全ての配布方法の概要を網羅的に紹介します。また、各方式について詳細を記している本サイトの別投稿へのリンクも紹介しますので、詳しく知りたい場合は各リンク先を参照して下さい。</p>
<p>本稿は、アプリの配布方法に迷った時の道標として使えるページです。是非、本稿をブックマークして頂き、アプリ配布方法に迷ったら参照するようにして下さい。</p>
<p>&nbsp;</p>
<h3>配布方法全7種</h3>
<p>以下に一覧を列挙します。</p>
<table class="table">
<thead>
<tr>
<th>種類</th>
<th>実装種別</th>
<th>用途</th>
<th>必要なもの</th>
</tr>
</thead>
<tbody>
<tr>
<th style="width:180px;vertical-align:middle;"><strong><a href="#1">AppStore公開アプリ</a></strong></th>
<td style="width:100px">ネイティブ</td>
<td>公開アプリとして申請して配布</td>
<td>MDM,ABM</td>
</tr>
<tr>
<th style="vertical-align:middle;"><strong><a href="#2">カスタムApp<br />(AppStore非公開アプリ)</a></strong></th>
<td>ネイティブ</td>
<td>非公開アプリとして申請して非公開に配布</td>
<td>MDM, ABM, ADP</td>
</tr>
<tr>
<th style="vertical-align:middle;"><strong><a href="#3">非表示App<br />(AppStore非表示アプリ)</a></strong></th>
<td>ネイティブ</td>
<td>公開アプリとして申請しURLを知る人だけに配布</td>
<td>ADP</td>
</tr>
<tr>
<th style="vertical-align:middle;"><strong><a href="#4">InHouseアプリ</a></strong></th>
<td>ネイティブ</td>
<td>開発したアプリをAppleに申請せず非公開配布</td>
<td>MDM, ADEP</td>
</tr>
<tr>
<th style="vertical-align:middle;"><strong><a href="#5">Webクリップ</a></strong></th>
<td>Web</td>
<td>Webをネイティブアプリのように見せかけて配布</td>
<td>MDM</td>
</tr>
<tr>
<th style="vertical-align:middle;"><a href="#6">TestFlight</a></th>
<td>ネイティブ</td>
<td>テスト用途のみ<br />関係者に申請前・本配信前のアプリを配布</td>
<td>ADP, TestFlight</td>
</tr>
<tr>
<th style="vertical-align:middle;"><a href="#7">AdHocアプリ</a></th>
<td>ネイティブ</td>
<td>開発したアプリをAppleに申請せず非公開配布<br />ただし予め端末IDを登録に対してのみ配布可</td>
<td>ADP</td>
</tr>
</tbody>
</table>
<p id="1">&nbsp;</p>
<h3>AppStore公開アプリ</h3>
<p>AppStore上に公開されている既存アプリは全てABM+MDM経由で配信することができます。例えば Box や DocuSign など既存アプリを業務でそのまま使う場合が該当します。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/03/20220307_boxemm.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(業務用バージョンを別アプリとしてAppStore公開しているものもある。上手はBoxの例)</span></p>
<p>ABMやMDMという言葉が初見という方は以下を参考にして下さい。</p>
<ul>
<li><a href="https://20230101.www.micss.biz/2020/01/27/1164/">MDMとは何か 〜今さら聞けないMDMの基礎〜</a></li>
<li><a href="https://20230101.www.micss.biz/2020/08/14/1927/">ABM(Apple Business Manager)とは何か</a></li>
<li><a href="https://20230101.www.micss.biz/2020/09/21/2343/">iOSDC 2020 Day1 でエンタープライズiOSについて講演しました（YouTubeで収録動画が公開されました）</a></li>
</ul>
<p>ABMでAppStoreのアプリを一括購入(VPPということもある)してMDMに同期して、MDMから配布します。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/03/20220307_abmvpp.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(ABMでAppStoreにあるGMailアプリを一括ライセンス購入する様子)</span></p>
<p>多くのMDMで、アップデート時の振る舞いをアプリごとに制御できます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/03/20220307_bizmobile_autoappupdate.jpg" alt="" width="400" class="alignnone" /><br /><span class="caption">(アプリ毎に自動更新するかどうかを決めることができる。上手はBizMobile Go!)</span></p>
<p>自動で更新させることもできれば、明示的な更新を強いることもできます。通常は自動更新としておくのが良いでしょう。</p>
<p id="2">&nbsp;</p>
<h3>カスタムApp</h3>
<p>現時点(2022年3月)で、<strong>特定企業用の非公開アプリを無制限に配信できる唯一の方法</strong>です。</p>
<p>AppStoreのインフラをそのまま使いますので、ADP(Apple Developer Program)の契約が必要で、アプリ毎にAppleの審査が必要です。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/03/20220307_adp_private.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(AppStoreに申請する際に、実は「非公開」を選択できる)</span></p>
<p>審査が通ればそれで完了&#8230;ではありません。ABMから当該カスタムAppを一括購入し、MDM経由か引き換えコードを使った配布をする必要があります。カスタムAppについては以下に記事をまとめていますので御覧下さい。</p>
<ul>
<li><a href="https://www.micss.biz/category/customapp/" rel="noopener" target="_blank">カスタムAppのカテゴリ全記事</a> (全記事11件の一覧)</li>
</ul>
<p id="3">&nbsp;</p>
<h3>非表示App</h3>
<p>2022年に新たに登場した配布形式です。</p>
<p>AppStore公開アプリではあるものの、AppStoreアプリでの検索に出てこなくなり、当該アプリのURLを知っている人だけがインストールできるという配布形式です。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/03/20220307_unlistedapp.jpg" alt="" width="600" class="alignnone" /></p>
<p>例えば「特定組織内で限定的に使うわけではないが第三者に見せる必要のないアプリ」で利用できます。</p>
<p>AppStoreへの通常のアプリ審査の他、非表示化を申請して受理される必要があります。申請時に合理的な理由(なぜカスタムAppではないのか)を説明することが求められます。詳しくは以下をご覧下さい。</p>
<ul>
<li><a href="https://www.micss.biz/2022/02/07/5041/" rel="noopener" target="_blank">非表示App(Unlisted App)とは何か</a></li>
</ul>
<p id="4">&nbsp;</p>
<h3>InHouseアプリ</h3>
<p>ADEP(Apple Developer Enterprise Program)の契約を締結できている組織だけが利用できます。現在その契約を持っていない組織ではこの配布方法は事実上<strong>採用不可</strong>です。</p>
<p>AppStoreインフラを使いませんので審査は不要です。配布台数制限もなく、MDMとABMの連携も不要で、最もシンプルで理解しやすい配布方法です。詳しくは以下の投稿をご覧下さい。</p>
<ul>
<li><a href="https://www.micss.biz/2019/11/28/980/" rel="noopener" target="_blank">ADEPとは</a></li>
<li><a href="https://www.micss.biz/2020/06/19/1774/" rel="noopener" target="_blank">ADEPはもう取得することができないと諦めたほうが良い理由</a></li>
</ul>
<p>なお、ADEPを契約済である企業であっても、<strong>ADEP契約が更新できなくなってきている</strong>点は注意して下さい。2022年に入ってから ADEP の更新を Apple に拒絶されたとの報告が幾例かあります。更新を拒否された場合、急いでカスタムAppを使った配布体制に切り替える必要があります。以下を御覧ください。</p>
<ul>
<li><a href="https://20230101.www.micss.biz/2022/03/21/5164/">ADEP契約を更新せず放置するとInHouseアプリはどうなるのか</a></li>
<li><a href="https://20230101.www.micss.biz/2022/04/18/5188/">そろそろADEP契約更新ができなくなるかも知れない 〜カスタムAppへの移行を急ぐべき理由〜</a></li>
</ul>
<p>ADEPを継続できている企業は、規約違反で契約取り消しとならないよう注意しましょう。以下で規約違反になるパターンをおさえておくことをお勧めします。</p>
<ul>
<li><a href="https://www.micss.biz/2019/12/06/1092/" rel="noopener" target="_blank">ADEPの契約ができないパターン集</a></li>
</ul>
<p id="5">&nbsp;</p>
<h3>Webクリップ</h3>
<p>WebサイトやWebシステムをアプリのように配布する形式です。MDMを使ってWebのショートカットを配布するようなイメージです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/03/20220307_nativelike_abm.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(アプリのように見えるが実はWebサイトのショートカットという例)</span></p>
<p>ハードウェアの機能を使わない、オンライン前提にできる、通知はメールやチャットで十分、といった条件を満たせる環境なら、わざわざネイティブアプリを開発しなくても擬似的にアプリ配布が可能です。</p>
<p>面倒なAppleへのアプリ申請やABMの操作等が不要になります。MDMさえ用意できればアプリ配布ができますので、ネイティブアプリ開発に課題がある場合、積極的に活用を検討すべき配布方法です。アプリ開発の知見が余りないWebシステム会社にとっては、アプリ開発提案の「亜種」として採用できる可能性があります。詳細は以下にまとめていますのでご覧下さい。</p>
<ul>
<li><a href="https://www.micss.biz/category/webクリップ/" rel="noopener" target="_blank">Webクリップのカテゴリ全記事</a> (全7記事)</li>
</ul>
<p id="6">&nbsp;</p>
<h3>TestFlight</h3>
<p>アプリの申請前や、申請後の本配信前に、関係者限定のテスト用途で使用する配布方法です。</p>
<p>前述したAppStore公開アプリやカスタムAppを使って業務用アプリを配布する場合に、アプリの初回配布前のフェーズや、アプリのアップデート版の本配信前テストに使用します。</p>
<p>ADPの Apple Developer サイトでテストしたいバージョンを指定し、テスターをグループ単位や個人単位で紐付けます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/03/20220307_testflight_adp.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(これまでInHouseでの配布経験しかない企業は TestFlight をよく理解することが求められる)</span></p>
<p>テスターは情シス担当者、社内評価担当者等が対象となります。テスターのiOS端末には <a href="https://apps.apple.com/jp/app/testflight/id899247664" rel="noopener" target="_blank">TestFlight</a> なるApple公式専用アプリを予めインストールしておく必要があります。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/03/20220307_testflight_appstore.jpg" alt="" width="240" class="alignnone" /></p>
<p>TestFlightアプリでインストールされたテスト用アプリには、有効期限が90日、旧バージョンにいつでも戻せる、などの特徴があります。なお、TsetFligth は原則、<strong>本番運用アプリで使ってはいけません</strong>。</p>
<p id="7">&nbsp;</p>
<h3>AdHocアプリ</h3>
<p>上限100台という台数制限があるものの、審査不要のアプリ配信が可能な方法です。動作対象端末のUDID(端末識別子)をあらかじめ収集しておく必要があって運用は少々面倒です。</p>
<p>UDIDを紐付けたAdHoc用の Provisioning Profile を使ってアプリを署名して生成した .ipa ファイルは、UDIDが一致する端末でのみインストール・起動できるようになるという仕組みです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/03/20220307_uuid_adp.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(UDIDを登録した権限ファイルを生成する様子。生成したファイルをビルド時にアプリに紐付ける)</span></p>
<p>インストールには有線・無線の両方が使えます。それぞれ以下を参照して下さい。(前者のタイトルはInHouseアプリだが、AdHocアプリでも使用できる)</p>
<ul>
<li><a href="/2020/05/11/1683/">Apple Configurator2 で InHouse アプリをインストール・アンインストールする方法と「信頼」について</a></li>
<li><a href="/2022/12/26/5748/">OTA(Over The Air)とは何か</a></li>
</ul>
<p>また、AdHocアプリの用途や配布先制限については以下を参照して下さい。</p>
<ul>
<li><a href="/2022/11/28/5695/">AdHoc配布はテスト用途以外に使用できるのか</a></li>
<li><a href="/2022/12/12/5731/">AdHocアプリを社外ユーザに配布できるのか</a></li>
</ul>
<p>&nbsp;</p>
<p>以上、業務用アプリの配布方法7種を解説しました。詳細についてはそれぞれ対応する投稿がありますので併せてご覧下さい。</p>
]]></content:encoded>
			</item>
		<item>
		<title>非表示App(Unlisted App)とは何か</title>
		<link>https://20230101.www.micss.biz/2022/02/07/5041/</link>
		<pubDate>Sun, 06 Feb 2022 22:00:17 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[ABM]]></category>
		<category><![CDATA[カスタムApp]]></category>
		<category><![CDATA[非表示App]]></category>

		<guid isPermaLink="false">https://20230101.www.micss.biz/?p=5041</guid>
		<description><![CDATA[2022年1月31日に、アプリ公開の方法として新たに非表示App(Unlisted App)が追加されました。本稿では、Appleの公式ドキュメントや申請フォームの情報を元に、非表示App(Unlisted App)につ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>2022年1月31日に、アプリ公開の方法として新たに<strong><a href="https://developer.apple.com/jp/support/unlisted-app-distribution/" rel="noopener" target="_blank">非表示App(Unlisted App)</a></strong>が追加されました。本稿では、Appleの公式ドキュメントや申請フォームの情報を元に、非表示App(Unlisted App)について解説します。</p>
<p>結論を先に書くと、アプリ配信の選択肢が1つ増えました。今後アプリの配信方法は以下の4つから選ぶことになります。</p>
<table class="table">
<thead>
<tr>
<th>No.</th>
<th>アプリ配信方法</th>
<th>配布・インストール方法</th>
<th>必要なもの</th>
<th>用途</th>
</tr>
</thead>
<tbody>
<tr>
<th style="vertical-align:middle;">(A)</th>
<td>公開App</td>
<td>AppStoreのお勧めや検索、ランキング、URL直指定</td>
<td>ADP</td>
<td>一般ユーザに広く公開する(してもよい)アプリ</td>
</tr>
<tr>
<th style="vertical-align:middle;">(B)</th>
<td rowspan="2">非公開App</th>
<td>カスタムApp</td>
<td>ADP, 利用企業側 ABM + MDM</td>
<td>特定企業が使う公開したくない業務用アプリ</td>
</tr>
<tr>
<th style="vertical-align:middle;">(C)</th>
<td>InHouse</td>
<td>ADEP, MDM(AC2)</td>
<td>特定企業が使う公開したくない業務用アプリ</td>
</tr>
<tr>
<th style="vertical-align:middle;">(D)</th>
<td>非表示App</td>
<td>AppStoreのURL直指定のみ</td>
<td>ADP</td>
<td>(A)-(C)では対応できない例外的なケース</td>
</tr>
</tbody>
</table>
<p>今回追加された非表示App(D)は、公開App(A)と非公開App((B)または(C))を足して2で割った、かゆいところに手が届く特別な配信方式です。ただ開発者が自由に設定できるものではなくAppleの審査があります。また、非公開にしたい企業向けアプリは(B)(C)のいずれか、という点は従来と何ら変わりません。</p>
<p>以下、詳しく見ていきましょう。</p>
<p>&nbsp;</p>
<h3>非表示Appの概要</h3>
<p>早速公開された<a href="https://developer.apple.com/jp/support/unlisted-app-distribution/" rel="noopener" target="_blank">Appleの日本語ドキュメント</a>によると</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/02/20220207_unlistedapp.jpg" alt="" width="600" class="alignnone" /></p>
<p>以下のような記述があります。</p>
<blockquote>
<p style="margin-bottom:0px;">
開発中のAppが一般配信に適していない場合は、App Storeで非表示Appとしてリリースし、ダイレクトリンク経由に限定して、ユーザーに見つけてもらうことができます。非表示Appは、App Storeのカテゴリ、おすすめ、ランキング、検索結果、その他のリストのいずれにも表示されません。
</p>
</blockquote>
<p>非表示アプリは、<strong>AppStore上に公開される</strong>が、URL直リンク以外ではそのアプリにたどり着けないようにしたものです。URLを知っている人だけがインストールできる状態になりますが、URLを知ってさえいれば誰でもインストールできるという点が注意事項です。</p>
<p>YouTubeで動画を公開するときの<a href="https://support.google.com/youtube/answer/157177?hl=ja&#038;co=GENIE.Platform%3DDesktop" rel="noopener" target="_blank">限定公開</a>と同じです。検索結果や関連動画には現れませんがURLを知っている人だけが見れる動画。そのアプリ版です。非表示Appは、<strong>限定公開App</strong>と言い換えても良いのかも知れません。</p>
<p>一部の業務用アプリやイベント参加者向けに提供するアプリ等で活用できるでしょう。</p>
<p>非表示Appにするには、特別に用意されたフォームから申請が必要になります。β版やテスト用途では使えません。既に公開されているAppStore上のアプリや、通常のAppStore公開アプリとして審査提出前状態のアプリのみが対象です。</p>
<p>&nbsp;</p>
<h3>では今後、業務用アプリは非表示Appで良い？</h3>
<p><strong>いいえ。</strong></p>
<p><strong>非表示Appは非公開App ではない</strong>ことに注意して下さい。AppStoreで公開されるアプリにたどり着く方法を直リンクに限るだけの話です。直リンクURLが広く知られたら、AppStoreで公開するのとさほど変わらない状態になります。</p>
<p>Appleは<a href="https://developer.apple.com/jp/support/unlisted-app-distribution/" rel="noopener" target="_blank">公式ドキュメント</a>で</p>
<blockquote>
<p style="margin-bottom:0px;">
Unlisted Appは、リンクを持っているユーザーなら誰でも利用できます。そのため、不正使用を防止するための仕組みをAppに実装することを検討してください。
</p>
</blockquote>
<p>と注意を促しています。そもそも存在を知られたく無いような非公開状態を期待するアプリは、やはり</p>
<ul>
<li>ADEPによるInHouseアプリ</li>
<li>カスタムApp</li>
</ul>
<p>のいずれかを選択することになります。前者のInHouseアプリの手段が使える企業は限られていますので、非公開状態を望む場合は、ほぼすべての企業が後者カスタムApp配信をすることになります。非公開Appの配布方法は、従来と何ら変わらないわけです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/02/20220214_customapp.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(非公開アプリであるカスタムAppとして申請しているアプリの例)</span></p>
<p>&nbsp;</p>
<h3>URL漏洩や不正利用に注意すれば、業務用アプリは非表示Appでも良い？</h3>
<p>いいえ。</p>
<p><strong>非公開App</strong> のカスタムAppは、MDMやABMの導入と運用が前提で、加えてVPPの理解も必要ですからかなり複雑になります。色々新しいことを調べるよりも、今までのよく知ったAppStore向け公開アプリの開発や申請フローで進めて、最後に非表示App申請するほうが楽そうだ&#8230;と思えなくもありません。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/02/20220214_customappflow.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(<a href="https://www.youtube.com/watch?v=j3LHNwhUHZQ" rel="noopener" target="_blank">iOSDC2021の講演</a>資料より)</span></p>
<p>ですが、非表示Appは開発者の意思で自由に設定できるわけではないため、そう簡単ではなさそうです。Appleに申請し、非表示App化を認めて貰わなくてはなりません。その<a href="https://developer.apple.com/contact/request/unlisted-app/" rel="noopener" target="_blank">申請フォーム</a>に気になる項目があります。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/02/20220207_requestform.jpg" alt="" width="600" class="alignnone" /></p>
<blockquote>
<p style="margin-bottom:0px;">
Why do you prefer to distribute this app unlisted on the App Store instead of privately to specific organizations on Apple Business Manager or Apple School Manager?
</p>
</blockquote>
<p>「ABMを使わずに非表示Appにしたい理由はなんですか？」と説明を求められます。ABMをなぜ使わないのか。さすがに「面倒だから」とか「ABMはよく分からないから」と書いて申請しても認めて貰えないでしょう。</p>
<p>またフォームの末尾には「これらを理解しています」と自己宣言するチェックボックスがあり、幾つか並ぶ項目の1つにこんなものがあります。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2022/02/20220207_reuqestagreement.jpg" alt="" width="600" class="alignnone" /></p>
<blockquote>
<p style="margin-bottom:0px;">
• Because the app will be accessible by anyone with the link, unlisted distribution is not private. If you need private app distribution, consider offering a <a href="https://developer.apple.com/business/custom-apps/" rel="noopener" target="_blank">custom app</a>on Apple Business Manager or Apple School Manager.
</p>
</blockquote>
<p><strong>非公開アプリはカスタムAppとABMの利用を検討して下さい</strong>と明記されています。ここからも、ABMやカスタムAppやMDMの検討をすっ飛ばして「とりあえず非表示Appの申請をすりゃ良いや」とはならなさそうなことが分かりますね。</p>
<p>その他、非表示Appの申請フォームには結構な数の回答項目があります。全て素直に回答すると「いぁそれはABMとカスタムAppでやれるでしょ」と Apple がツッコミを入れやすいよう誘導しているかのような設問で、<a href="/2020/06/19/1774/">ADEPを取らせないようにするAppleの姿勢</a>に似たものを感じます。</p>
<p>では、どんなときに非表示App申請が適切になるのでしょうか。</p>
<p>&nbsp;</p>
<h3>非表示Appの審査が適切なケース</h3>
<p>既存の配布方法ではカバーできない用途です。つまり、</p>
<ul>
<li>AppStoreで広く公にする必要がないアプリで、</li>
<li>ABM + カスタムApp での非公開Appが適切ではない or 難しいアプリ</li>
</ul>
<p>になるでしょう。具体的には以下のようなアプリが該当します。</p>
<ul>
<li>イベントやカンファレンスの参加者専用アプリ</li>
<li>雇用関係にはないが一時的に組織外の人物に使わせる業務用アプリ</li>
<li>あるメーカ製品を営業するための販売代理店使用を前提とするアプリ</li>
<li>海外を含む全グループ子会社に提供する従業員専用アプリ</li>
</ul>
<p>いずれも、<strong>限定的なユーザに使わせたいアプリで、かつ、ABM + カスタムApp の配布可能範囲の制約が障壁になる</strong>ケースです。</p>
<p>こうした例では従来、カスタムAppをインストールした端末を貸与する形をとったり、全関係企業でABMが必要になったり、<a href="https://20230101.www.micss.biz/2021/04/05/3597/">カスタムAppを引き換えコード付きで入手して配布</a>したりしていました。非表示Appは、これらの運用が複雑になるパターンを救済する仕組みと捉えるべきです。</p>
<p>ですので今後、業務用アプリを新たに開発する場合は、</p>
<ul>
<li>STEP1 : ABM + カスタムApp での非公開のApp開発・配布を検討する</li>
<li>STEP2 : カスタムApp のライセンス的に現実的でないなら非表示Appを申請する</li>
</ul>
<p>で進めるのが順当でしょう。以下のカスタムApp関連の投稿が参考になりますので併せてご覧下さい。</p>
<ul>
<li><a href="/2021/03/08/3427/">カスタムAppとは何か(1) 〜非公開アプリをリリースする唯一の方法〜</a></li>
<li><a href="/2021/04/26/3695/">カスタムAppとは何か(8) 〜業務用アプリを配布しても良い範囲〜</a></li>
</ul>
<p>&nbsp;</p>
<p>以上、2022年1月に発表された非表示App(Unlisted App)について解説しました。</p>
]]></content:encoded>
			</item>
		<item>
		<title>カスタムApp（CustomApp）とは何か（１０）  〜引き換えコード配布でのアップデートや再インストールについて〜</title>
		<link>https://20230101.www.micss.biz/2021/05/10/3755/</link>
		<pubDate>Mon, 10 May 2021 01:13:31 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[エンタープライズiOS]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://20230101.www.micss.biz/?p=3755</guid>
		<description><![CDATA[以前の投稿でカスタムAppにはインストール方法が2つあると紹介しました。 ライセンス 引き換えコード 本稿では、後者の引き換えコードでカスタムAppを配布した場合の再インストールやアップデートについて解説します。(ライセ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>以前の投稿でカスタムAppにはインストール方法が2つあると紹介しました。</p>
<ul>
<li><a href="/2021/03/29/3586/">ライセンス</a></li>
<li><a href="/2021/04/05/3597/">引き換えコード</a></li>
</ul>
<p>本稿では、後者の引き換えコードでカスタムAppを配布した場合の再インストールやアップデートについて解説します。(ライセンス配布の場合については<a href="/2021/05/03/3732/">前回の記事</a>を参照して下さい)</p>
<p>&nbsp;</p>
<h3>引き換えコード配布はAppleIDに紐づく</h3>
<p>カスタムAppを引き換えコードとして購入した場合、コードを従業員に配布し、各従業員は受け取ったコードを使ってインストールするのでした。下図中央の配布フローです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/05/20210510_customapp_code.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(AppStoreアプリ内で引き換えコードを使ってインストールする)</span></p>
<p>この引き換えコードで配布した場合、 カスタムAppのアップデートや再インストールはどのように行うのでしょうか。</p>
<p>MDMを介したライセンス連携配布とは異なり、引き換えコード配布されたカスタムAppは<strong>必ず従業員のAppleIDに紐づく</strong>ことになります。従って何か特別な運用になるというよりは、通常のAppStore公開アプリを従業員が勝手にインストールしている時と同じような運用になります。順にみていきましょう。</p>
<p>&nbsp;</p>
<h3>引き換えコード配布したカスタムAppのアップデート</h3>
<p>通常のAppStore公開アプリと同じです。</p>
<p>従業員の端末側の設定でAppStoreアプリの自動アップデートがONになっていれば、カスタムAppも自動的にアップデートされます。一方、自動アップデートの設定がされていなければ、従業員が手動でアップデートするまで最新バージョンはインストールされません。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/05/20210510_customapp-code_settings-update.jpg" alt="" width="320" class="alignnone" /><br /><span class="caption">(OFFにしている従業員がいるかも知れないので、カスタムAppのアップデートの周知徹底が必要になる)</span></p>
<p>カスタムAppは、<a href="/2021/03/08/3427/">過去に紹介した通り</a>AppStoreアプリの一種です。また引き換えコードのインストールではAppStoreアプリを使います。非公開アプリであるということ以外に、AppStore公開アプリと異なる点は全くないわけですね。</p>
<p>ですから、アップデートが配信されるかどうかは従業員側に委ねられ、管理部門は一切コントロールできません。カスタムAppを引き換えコード配布で運用する場合は、アプリ内部で「最新バージョンになっていなければアップデートを促す」といった仕組みが必要になるでしょう。</p>
<p>&nbsp;</p>
<h3>引き換えコード配布したカスタムAppの再インストール</h3>
<p>削除してしまったアプリは通常AppStoreアプリから検索して再インストールします。が、カスタムAppはAppStoreアプリで検索しても検索結果には現れないのでした。ではどうやってカスタムAppを再インストールするのでしょう？</p>
<p>答えは、<strong>AppStoreアプリの購入済みアプリの一覧から</strong>となります。<strong>配布済みの引き換えコードを再度使ってもらうのではない</strong>ことに注意して下さい。引き換えコードは一度使うと再利用できないからです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/05/20210510_appstore_couldntusecode.jpg" alt="" width="320" class="alignnone" /><br /><span class="caption">(引き換えコードは使い切り。再インストールに未使用コードを提供しても良いが運用が煩雑となり現実的ではない)</span></p>
<p>購入済みアプリの一覧を見るには、AppStoreアプリを起動して、画面右上のAppleIDアイコンをタップします。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/05/20210510_appstore_top.jpg" alt="" width="320" class="alignnone" /><br /><span class="caption">(AppStoreアプリからアカウント画面を表示する。多くのユーザには余り馴染みのない画面)</span></p>
<p>次に、[購入済み]をタップすると、過去に入手したアプリの一覧が確認できます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/05/20210510_appstore_purchased.jpg" alt="" width="320" class="alignnone" /> → <img src="https://20230101.www.micss.biz/wp-content/uploads/2021/05/20210510_appstore_purchasedapp-notexits.jpg" alt="" width="320" class="alignnone" /><br /><span class="caption">(カスタムAppとAppStore公開アプリとの区別は無い。上図では2つ目のアプリがカスタムApp)</span></p>
<p>一覧には引き換えコードでインストールしたカスタムAppも含まれていますので、アプリ右端のアイコンタップで再インストールできます。</p>
<p>分かってしまえば何のことはないのですが、事前に知らされていなければ誤ってカスタムAppを削除した従業員は混乱してしまうことでしょう。引き換えコードを使って運用する場合は、アプリの再インストール方法を一緒に案内しておくことをお勧めします。</p>
<p>&nbsp;</p>
<p>以上、引き換えコードを使ってカスタムAppを配布した場合のアップデートと再インストールについて紹介しました。完全に従業員に委ねることになりますので、管理部門にとって不都合である場合がほとんどです。</p>
<p>従って、業務用アプリは<strong>原則的にライセンス連携でMDM経由の配布を行うべき</strong>です。MDM経由で配布できない事情がある特別な場合や、MDM経由の配布が不適切なアプリである場合でのみ、引き換えコードを使うのが良いでしょう。</p>
]]></content:encoded>
			</item>
		<item>
		<title>カスタムApp（CustomApp）とは何か（９） 〜ライセンス連携配布でのアップデートや再インストールについて〜</title>
		<link>https://20230101.www.micss.biz/2021/05/03/3732/</link>
		<pubDate>Mon, 03 May 2021 06:28:23 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[エンタープライズiOS]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://20230101.www.micss.biz/?p=3732</guid>
		<description><![CDATA[過去の投稿でカスタムAppには配布方法が2つあると紹介しました。 ライセンス 引き換えコード 本稿では前者のライセンス購入でカスタムAppを配布した場合の、アプリの再インストールやアップデートについて解説します。何度か掲 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>過去の投稿でカスタムAppには配布方法が2つあると紹介しました。</p>
<ul>
<li><a href="/2021/03/29/3586/">ライセンス</a></li>
<li><a href="/2021/04/05/3597/">引き換えコード</a></li>
</ul>
<p>本稿では前者のライセンス購入でカスタムAppを配布した場合の、アプリの再インストールやアップデートについて解説します。何度か掲載している下図の一番右端の配布フローとなります。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/05/20210503_customapp_licensedistribution.jpg" alt="" width="600" class="alignnone" /></p>
<p>カスタムAppをライセンス購入した場合、アプリの個数情報がMDMに同期されます。MDM側では購入個数を超えない範囲で「どの端末にどのカスタムAppをインストールするか」を設定し、その設定に従ってアプリがインストールされるのでした。</p>
<p>では運用フェーズに入ってから、カスタムAppがアップデートされた時はどんな挙動になるのでしょうか？また、万が一ユーザが端末側でアプリを誤って削除してしまった場合、どうすれば再インストールできるのでしょうか？順にみてみましょう。</p>
<p>&nbsp;</p>
<h3>ライセンス購入配布したカスタムAppのアップデート</h3>
<p>MDMの設定によりますが、</p>
<ul>
<li>自動でアップデートされる</li>
<li>手動でアップデートしてもらう</li>
</ul>
<p>のどちらかになります。通常の個人利用の端末では、自動 or 手動をユーザが設定アプリで指定しますが、MDM管理下にある業務端末の場合はMDM側でアップデートのポリシーを定めます。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/05/20210503_customapp_update.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(BizMobileの場合はアプリ毎に自動更新にするかどうかを切り替えられる、自動更新のチェックを入れていなければ手動)</span></p>
<p>自動にするか手動にするか。これはカスタムAppの種類にもよりますし、同じカスタムAppでもバージョンによってどちらが良いかは変わってきます。よく吟味して設定しましょう。</p>
<p>&nbsp;</p>
<h3>ライセンス購入配布したカスタムAppの再インストール</h3>
<p>デバイス側で万が一カスタムAppを削除してしまったらどうなるのでしょうか。答えは、</p>
<p><strong>インストール命令が再び送られ、再インストールされる</strong></p>
<p>です。大半のMDMサービスは、端末をMDMで設定した通りの状態にしようと積極的に働きかけてきます。端末側のアプリ一覧にMDMでインストール指定したアプリがなければ「欠けてるぞ。インストールせよ！」と命令が降ってくるイメージです。そうしないと遠隔管理の意味がないですから当然の動きですね。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/05/20210503_customapp_mdm.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(MDMの設定と差分がないか定期的な確認と同期命令が送られる)</span></p>
<p>よってユーザがカスタムAppを勝手に削除してしまった場合でも心配無用。MDMからの命令により再インストールされることになります。ただし監視モードでない端末では以下のようになる点は留意してください。(参考 : <a href="/2020/11/23/2499/">iOSの監視モードとは何か</a>)</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/05/20210503_customapp_install.jpg" alt="" width="320" class="alignnone" /><br /><span class="caption">(監視モードでない場合は再インストールを強制できない。強制したい場合は監視モードにすること)</span></p>
<p>MDMがカスタムAppの削除を認識するタイミングや再インストール命令を送ってくるタイミングは、MDMサービスによって異なります。詳しくはMDMベンダーに確認しておくのが良いでしょう。(弊社がよく利用するBizMobileでは毎日深夜2:00頃とされています)</p>
<p>一方ユーザ(従業員)から「間違って削除してしまった&#8230;」と連絡があった場合は、その都度MDMから当該端末を「同期」してあげれば数秒後に再インストールされます。</p>
<p>なお当然ながら、自動手動に関わらずアプリ内に含まれていたデータは復旧しませんので注意して下さい。</p>
<p>&nbsp;</p>
<p>以上、ライセンス購入したカスタムAppのアップデートと再インストールについて解説しました。次回はもうひとつのカスタムApp配布方法である「引き換えコード」を使った場合の、アップデートと再インストールについて解説します。</p>
]]></content:encoded>
			</item>
		<item>
		<title>カスタムApp（CustomApp）とは何か（８） 〜業務用アプリを配布しても良い範囲〜</title>
		<link>https://20230101.www.micss.biz/2021/04/26/3695/</link>
		<pubDate>Sun, 25 Apr 2021 23:00:29 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[エンタープライズiOS]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://20230101.www.micss.biz/?p=3695</guid>
		<description><![CDATA[カスタムAppを提供しても良い範囲はどこまでなのでしょうか。 カスタムAppには、MDM連携するライセンス配布と引き換えコードによる配布と2種類があります。 カスタムApp（CustomApp）とは何か（４）〜自社専用業 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>カスタムAppを提供しても良い範囲はどこまでなのでしょうか。</p>
<p>カスタムAppには、MDM連携するライセンス配布と引き換えコードによる配布と2種類があります。</p>
<ul>
<li><a href="/2021/03/29/3586/">カスタムApp（CustomApp）とは何か（４）〜自社専用業務アプリをMDM連携で配布する〜</a></li>
<li><a href="/2021/04/05/3597/">カスタムApp（CustomApp）とは何か（５）〜自社専用業務アプリを従業員の個人所有端末に配布する〜</a></li>
</ul>
<p>前者はともかく、後者の引き換えコードの場合はコードやURLを配布すれば誰にでもカスタムAppを提供できますから、業務に全く関係のない人に配布しようと思えばできてしまいます。ただ、さすがにAppleがそれを許容する筈もなく、カスタムAppには配布対象制限が設けられています。</p>
<p>そこで本稿では Apple Business Manager の利用規約を読み解き、カスタムAppの配布可能範囲について考察してみたいと思います。</p>
<p>なお本記事の内容は、Apple Buisness Manager Agreement についての弊社解釈を記すものです。必ず自社で利用規約を確認し、法律に詳しい専門家にも確認の上で最終判断を行うようにして下さい。</p>
<p>&nbsp;</p>
<h3>Apple Business Manager 利用規約の入手方法</h3>
<p>まず利用規約の入手の仕方をおさえておきましょう。ABMの利用規約は過去分に遡っていつでもPDFを入手できるようになっています。ABMにサインインして、[設定]→[契約情報]→[利用規約] の順にクリックして一覧を表示して下さい。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210426_abm-agreementslist.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(過去にABM上で同意した利用規約が全てPDFで入手できる)</span></p>
<p>一覧の中から <strong>Apple Business Manager 利用規約</strong> をクリックするとPDFで入手できます。一覧下にスクロールすると過去に同意した分まで確認できますが、一番上の新しいものだけで十分です。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210426_abm-agreement.jpg" alt="" width="600" class="alignnone" /></p>
<p>日本語で書かれていますがPDF後半には英語での原文があります。以下では日本語部分のみを引用しながら解説しますが、原文も併せて確認することが推奨されます。</p>
<p>&nbsp;</p>
<h3>利用規約の1ページ目に結論が書いてある</h3>
<p>身も蓋もないのですが、利用規約を読み進めると最初のページいきなりこんな記述が飛び込んできます。</p>
<pre>
「契約」とは、このApple Business Manager契約を意味します。明確性のために明記すると、
このApple Business Manager契約はApple Device Enrollment Program契約の後継となる契約です。
</pre>
<p>実は、もう規約上でABMはADEPの後継であると明記されているのですね。よって、配布対象の制限も同じと考えるのが自然です。ADEPでは<strong>契約主体企業の従業員や業務委託者にしかアプリを使わせてはいけない</strong>のでした。であれば同じ解釈で、カスタムAppの配布可能範囲もまたABM利用主体企業の従業員や業務委託者に限定される筈です。</p>
<p>さすがに「後継です、以上！」の説明しかないわけではありませんので、配布可能範囲について書いている箇所を以下で詳しく見てみたいと思います。</p>
<p>&nbsp;</p>
<h3>利用規約を読み解く</h3>
<p>カスタムAppの配布可能範囲に言及があるのは「2.6 コンテンツの購入」です。</p>
<pre>
本サービスではコンテンツの取得が自動的に無効化され、お客様による利用には、
アプリケーションとブックを利用する前に本サービスにおいて提示されるVolume Contentの利用に関する要件
および諸条件が適用されます。

お客様は、お客様の管理者に購入権限を付与し、Appleの Volume Purchaseの諸条件へのアクセスを許可して、
本サービスの一環として利用および管理のためのコンテンツを購入できるようにすることにより、
当該管理者が本サービスを介してコンテンツにアクセスできるようにすることを選択できます。

お客様は、こうした購入および適用される諸条件の遵守について単独で責任を負います。
お客様が本サービスの一環としてコンテンツを購入する場合、
お客様は、お客様がお客様の正規ユーザーに代わってそうした諸条件を受諾する権限を有していること、
およびそうした条件を受諾することに同意するものとします。
</pre>
<p>ここでいうお客様はABMの利用者のことですが、最後の一文に「正規ユーザーに代わって諸条件を受諾する」とあります。ABMでは情シス等の部門担当者が、従業員ユーザの代わりにカスタムAppを一括購入して配布することになるため、このような書き方になっています。</p>
<p>ということは、代わられることになる「正規ユーザー」が、コンテンツ(つまりアプリ)を配布する対象を示していると言えそうです。では「正規ユーザー」とは誰でしょうか。利用規約のp.2には以下のように定義されています。</p>
<pre>
「正規ユーザー」とは、お客様の会社もしくは組織の従業員および外部契約者(もしくはサービスプロバイダ)、
またはお客様の認可事業体の従業員および外部契約者を意味し、
お客様が病院である場合、「正規ユーザー」の用語には認定医、紹介元となる医師および臨床医も含まれます。
</pre>
<p>正規ユーザーとは、まず従業員か外部契約者とあります。これにより、</p>
<ul>
<li>企業が雇用する正社員・非正規社員</li>
<li>企業が雇用するアルバイト</li>
<li>企業が業務委託する個人事業主</li>
</ul>
<p>などが含まれることになると解釈できるでしょう。組合系組織や合同会社の場合は雇用という関係性が無い場合がありますが、その場合は組織の構成員や所属する人員まで解釈を拡大しても問題ないでしょう。いずれにしてもABM利用企業の「身内」に限定されるというわけです。</p>
<p>NGケースとなる例をあげると、ある製品の販売支援アプリを製品開発企業が開発し自社のABMを介してカスタムAppとして販売代理企業のスタッフに使って貰う&#8230;.といったケースでしょう。販売代理企業の従業員は、製品開発企業の「正規ユーザー」に含まるとは考えにくく、ADEPと同様にNGと考えるのが妥当です。(参考 → <a href="/2019/12/06/1092/">ADEPの契約ができないパターン集</a>)</p>
<p>ただ、「正規ユーザー」に「認可事業体の従業員および外部契約者」も含まれるという定義は、カスタムAppの配布可能範囲を広げる可能性があります。「認可事業体」とは何でしょうか。同じく利用規約のp.2に定義されており、</p>
<pre>
「認可事業体」とは、（a）お客様が⾃動⾞メーカーである場合は、お客様の正規ディーラーお
よび認定サービスパートナーのことを、（b）お客様がホテルの持株会社である場合は、お客様
の名称、商標、もしくはブランド（またはその持株会社が所有もしくは管理している名称、商
標、もしくはブランド）の下で運営されているホテル資産のことを、または（c）Appleがその単
独の裁量により書⾯で承認することのあるその他の類似する事業体を意味します。
</pre>
<p>とされています。</p>
<p>(a)(b)はまさに販売代理店的な位置づけとして期待されるものですね。ただ自動車業界とホテル業界についてのみ明示的に許容されているだけであり、残念ながら該当しない事業の場合は (c) 該当となるようAppleの承認を求める必要があります。</p>
<p>実はこの(a)〜(c)も最新のADEP契約書と同じ記載なのですが、開発するカスタムAppが自動車業界とホテル業界に関係する場合は、カスタムAppの配布可能範囲を広範囲に解釈できる可能性があります。</p>
<p>&nbsp;</p>
<p>以上、カスタムAppの配布可能範囲について解説しました。</p>
<p>原則は ADEP と同じであり、ABM利用主体の企業の従業員や業務委託者にしか使わせてはいけないということです。カスタムAppの多くはMDM連携して管理デバイスに配布されますから、おのずから従業員や業務委託者以外には配布されにくくなっていますが、引き換えコードを使って配布する場合には注意が必要でしょう。</p>
<p>なお冒頭の繰り返しになりますが、ご紹介した解釈はあくまで弊社による解釈ですので、各エンドユーザ企業におかれてはABM利用規約の英語原文も確認のうえで最終判断されるのが良いでしょう。</p>
]]></content:encoded>
			</item>
		<item>
		<title>カスタムApp（CustomApp）とは何か（７） 〜カスタムAppの審査を回避する方法はあるか〜</title>
		<link>https://20230101.www.micss.biz/2021/04/19/3656/</link>
		<pubDate>Sun, 18 Apr 2021 23:00:48 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[エンタープライズiOS]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://20230101.www.micss.biz/?p=3656</guid>
		<description><![CDATA[前回の投稿でカスタムAppの審査日数や難易度について紹介しましたが、そもそも審査を回避する方法はないのでしょうか？ 結論から言うと、カスタムAppとしてリリースするための審査回避方法はありません。 必ず審査を受ける必要が [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="/2021/04/12/3613/">前回の投稿</a>でカスタムAppの審査日数や難易度について紹介しましたが、そもそも審査を回避する方法はないのでしょうか？</p>
<p>結論から言うと、<strong>カスタムAppとしてリリースするための審査回避方法はありません</strong>。</p>
<p>必ず審査を受ける必要があります。自社専用の業務アプリは、カスタムAppとして申請して、審査に通過して、ABMで「購入」して、ようやくiOS端末に届けることができます。ABMを介する以上、審査は必須です。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210419_customapp_avoidreview.png" alt="" width="400" class="alignnone" /><br /><span class="caption">(原則的にカスタムAppでも審査を免れることはできない)</span></p>
<p>これまでADEPでのInHouseアプリ開発・納品経験のある開発会社やSIerにとっては、残念なお知らせでしょう。ただ全く方法がない訳ではありません。そこで本稿では、審査回避しるう配布方法を1つ紹介します。</p>
<p>&nbsp;</p>
<h3>TestFlightの内部テスト使う</h3>
<p>AppStoreには、<a href="https://developer.apple.com/jp/testflight/" rel="noopener" target="_blank">TestFlight</a>というアプリ公開前テストのための仕組みがあります。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210419_testflight.png" alt="" width="600" class="alignnone" /><br /><span class="caption">(元々あるベンチャーが開発していたテストの仕組み。Bustly社が買収後、Appleが買収・統合し2014年から公式提供)</span></p>
<p>通常、AppStore公開アプリを事前テストする文脈で紹介されますが、この<strong>TestFlightはカスタムAppでも使うことができます</strong>。カスタムAppはAppStoreアプリの一種だからですね。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210419_testflightapp.png" alt="" width="320" class="alignnone" /> → <img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210419_testfligh_app_home.png" alt="" width="320" class="alignnone" /><br />
<br /><span class="caption">(左はテストバージョンが配布されるTestFlightアプリ。TestFlight経由でインストールしたアプリは黄色い●印がつく)</span></p>
<p>TestFlightを使えば、ABMを介すことなくTestFlightアプリ経由でカスタムAppを配布することができます。カスタムAppの説明でよく載せている図に描き加えるとすると以下のような感じですね。一番右端です。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210419_testflight_bypass_abm.png" alt="" width="600" class="alignnone" /><br /><span class="caption">(TestFlightは審査通過を前提とするABMの迂回路になりうる)</span></p>
<p>TesetFlightには以下の通り内部テストと外部テストがあり、内部テストを使うと実質Appleの審査を受けることなくカスタムAppが配布できます。</p>
<table class="table">
<thead>
<tr>
<th>テスト形式</th>
<th>インストール制限</th>
<th>審査される内容</th>
</tr>
</thead>
<tbody>
<tr>
<th>内部テスト</th>
<td>100人/30台</td>
<td>.ipaファイルの最低限のバイナリ妥当性</td>
</tr>
<tr>
<th>外部テスト</th>
<td>10000人</td>
<td><a href="https://developer.apple.com/jp/app-store/review/guidelines/" rel="noopener" target="_blank">App Store Review ガイドライン</a>の項目</td>
</tr>
</tbody>
</table>
<p>ただしTestFlightは、</p>
<ul>
<li>テスト・評価の用途限定</li>
<li>有効期限が90日(90日毎に再ビルド再配信が必要)</li>
<li>AppleID必須</li>
<li>配布対象数に上限がある</li>
<li>配布ツールとして専用のTestFlightアプリのインストール必須</li>
</ul>
<p>など様々な制約があります。審査回避できるとはいえ、この方法で配布できるケースは<strong>研究開発やPoCを目的とするアプリ</strong>の場合に限られます。通常業務に使うリリースが見えてきた時点で、最新バージョンを正規の審査に提出することになります。</p>
<p>カスタムAppの審査を実質的に回避する方法は、このTestFligth内部テストを使う方法に限られます。これ以外に、カスタムAppの審査を免れる方法はありませんし、ADEP/InHouseのようなやりたい放題をカスタムAppに期待することは残念ながらできません。</p>
<p>ですので、ADEPの契約を持っていない企業が専用の業務用アプリ開発を行う場合、<strong>カスタムAppでの審査は原則必須で不可避</strong>と考えておいたほうが良いでしょう。審査を迂回する方法を考えるより、本当に審査を回避する必要があるのか？を今一度考え直すほうが賢明です。</p>
<p>&nbsp;</p>
<h3>そもそも、なぜ審査を回避したいのか？</h3>
<p>企業や案件によって理由は種々様々ですが、代表的なよく聞く理由と、それが審査回避を目指す理由にはならないことについて幾つか書いてみようと思います。</p>
<h4>アプリ配信を審査完了まで待ってられないから</h4>
<p><a href="/2021/04/12/3613/">先の投稿</a>の通り審査には1-3日程度しか要しません。これは<a href="https://support.apple.com/ja-jp/guide/apple-business-manager/apd58ba3112a/web" rel="noopener" target="_blank">Appleも公式に述べています</a>ので、例年末のクリスマス休暇に伴う審査受付停止時期にかぶらない限り通常は問題にならない筈です。</p>
<p>「万が一通らなかったら&#8230;？」</p>
<p>その場合は事前に申請しておくと良いです。本申請でなくても、TestFlight の外部テストでも良いでしょう。App Store Review ガイドラインに抵触していないかどうか Apple に事前チェックして貰うようなものです。</p>
<p>それでも万が一の時にどうすれば？&#8230;と気になる場合は、AppStore公開アプリと同様に<a href="https://developer.apple.com/contact/app-store/?topic=expedite" rel="noopener" target="_blank">緊急申請</a>という仕組みがあることを知っておくと安心できるのではないでしょうか。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210419_expeditedappreview.png" alt="" width="600" class="alignnone" /><br /><span class="caption">(どうしても大至急審査が必要な場合は使用できる。余程のことがない限り使ってはならず乱発は厳禁。ADP契約企業のみ申請可能)</span></p>
<p>以上をふまえても「やはり自社都合でいつでもリリースできる状態を担保したい、だから審査は嫌だ」というなら、まずアプリ開発の計画そのものや品質担保体制を考え直すことをお勧めします。</p>
<h4>Appleが推奨されないAPIの使い方をしたいから</h4>
<p>推奨されていないと分かっている場合は考え方を改めましょう。推奨されたAPIを使って実現できないかを考えるか、iOSアプリとして開発することを諦めたほうが良いです。</p>
<h4>機密性の高い情報を扱うアプリだから</h4>
<p>認証機構を実装して、審査用アカウントと審査用ダミーデータを用意して申請しましょう。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210419_customapp_reviewaccount.png" alt="" width="600" class="alignnone" /><br /><span class="caption">(審査用アカウント情報を提供する申請画面。アカウント情報以外にテストの手順を詳細に解説したり、レビューに使う添付ファイルを送ることも可能)</span></p>
<p>Appleに審査用アカウントでログインして貰った上で審査して貰えます。審査用アカウントでは機密性を除外したダミーデータしか参照されない仕組みにしておくと良いでしょう。</p>
<p>通常、どんなシステムでもテスト用のデータセットとテスト用アカウントを用意して関係者の間でレビューするものです。そのアカウント情報をAppleにそのまま伝えるだけで十分です。</p>
<h4>最新バージョンではない自由なバージョンで配布したいから</h4>
<p>ADEPによるInHouse配布と同様の自由度を求める場合によくある理由です。InHouseアプリの場合、いつでも任意のバージョンに戻すことができました。が、カスタムAppでは常に最新版が配布されます。AppStore公開アプリと同様、過去バージョンに戻すことはできません。</p>
<p>ただ、TestFlightの内部テスト→外部テストで本配布前に十分なテストを行うことができますし、また万が一の時には先に述べた<a href="https://developer.apple.com/contact/app-store/?topic=expedite" rel="noopener" target="_blank">緊急申請</a>という手段もありますから、過去バージョンに戻せることを必須とする理由はない筈です。</p>
<p>それでもやはり心配であれば、TestFlightで複数バージョンを提供しましょう。有事の際は一時的にTestFlightから過去バージョンを使ってもらうのもアリです。</p>
<p><img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210419_customapp_detail.png" alt="" width="240" class="alignnone" /> → <img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210419_customapp_oldversions.png" alt="" width="240" class="alignnone" /> → <img src="https://20230101.www.micss.biz/wp-content/uploads/2021/04/20210419_customapp_installoldversion.png" alt="" width="240" class="alignnone" /><br /><span class="caption">(TestFlightアプリからカスタムAppの過去バージョンから選択的にインストールする様子)</span></p>
<p>&nbsp;</p>
<p>以上、カスタムAppの審査回避について考察しました。まとめると以下のとおりです。</p>
<ul>
<li>原則、審査は必須。避ける方法はない</li>
<li>技術評価やPoC用途であれば TestFlight の内部テストで運用しうる</li>
<li>審査を避ける理由の幾つかには妥当性がないので審査は受け入れる</li>
</ul>
<p>弊社所感ですが、悪意(非推奨APIを意図的に使う)や知識不足(推奨APIでできることを知らない)、計画不足(無理なスケジュール)や品質不足(テスト体制の不備)といったことがない限り、カスタムAppの審査を迂回したいと考える理由は余りありません。APIへの確かな理解で計画的なアプリ開発をしたいものですね。</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
