<?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>AdHoc &#8211; MICSS</title>
	<atom:link href="https://www.micss.biz/category/adhoc/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.micss.biz</link>
	<description>“低コスト”で“スピーディ”なモバイル導入をご支援</description>
	<lastBuildDate>Sun, 26 Apr 2026 08:41:20 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.33</generator>
	<item>
		<title>業務用iOSアプリ配信方法選定チャート(従業員用)のPDFを公開します</title>
		<link>https://www.micss.biz/2025/06/02/7435/</link>
		<pubDate>Sun, 01 Jun 2025 22:00:42 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[AdHoc]]></category>
		<category><![CDATA[ADP]]></category>
		<category><![CDATA[TestFlight]]></category>
		<category><![CDATA[Webクリップ]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://www.micss.biz/?p=7435</guid>
		<description><![CDATA[業務用iOSのアプリ配信方法がどのように決まるのか(決めるのか)を判定するためのチャートを公開します。 ADEPからADPへの移行(カスタムApp化)を進める企業や、新たに独自アプリを作る企業、またそうした企業を支援する [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>業務用iOSのアプリ配信方法がどのように決まるのか(決めるのか)を判定するためのチャートを公開します。</p>
<p>ADEPからADPへの移行(カスタムApp化)を進める企業や、新たに独自アプリを作る企業、またそうした企業を支援する関係者の方に役立てて頂けるかと思います。</p>
<p><strong>自社従業員に使わせるアプリ</strong>で、かつ<strong>ADP</strong>を前提としている点はご留意下さい。1枚ものの簡単なチャートになります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2025/06/20250602_flowchart_all.jpg" alt="" width="600" class="alignnone" /></p>
<p>画像貼り付けだと少し見にくいので<a href="https://www.micss.biz/wp-content/uploads/2025/06/20250602_b2bios_distribution_decision_flow.pdf" rel="noopener" target="_blank">PDF</a>も用意しました。以下にチャートの順に解説しますので、別ウィンドウでPDFを拡大しながら読み進めて頂くと良いと思います。</p>
<p>&nbsp;</p>
<h3>配信方法選定チャートの解説(1) : そもそも論</h3>
<p>チャートは左上からスタートです。まず最初の判断は、</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2025/06/20250602_flowchart_1.jpg" alt="" width="600" class="alignnone" /></p>
<p>ここですね。まさかの「Webにしましょう」です。本サイトでもいくつか関連エントリを書いています。</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>弊社はiOSアプリと関わり始めて2025年6月時点で17年近く。その間、B2C/B2B/自社アプリ/受託アプリこれら全ての組み合わせを色々経験していますが「安易な自社アプリ開発はお勧めしない」が一貫したスタンスです。今も昔も業務用iOSアプリの真理だと思っています。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2025/06/20250602_not_nativeapp.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(10年以上前のセミナー資料。自社アプリを作るのは最終手段であると解説し続けてきた)</span></p>
<p>MDM/ABMを併用すれば、自社専用のアプリがなくてもWeb技術だけでiOS端末を十分に活用できます。なので、カスタムApp化を考える場合も新規アプリ開発をする場合も、まず真剣に「本当にWebではダメなのか？」を問うてみることをお勧めします。</p>
<p>2025年現在、<strong>業務用アプリの9割はWebで十分である</strong>という感触を持っています。以下もご覧下さい。</p>
<ul>
<li><a href="https://www.micss.biz/2021/10/04/4461/" rel="noopener" target="_blank">Webクリップとは何か(1) -Webサイトのブックマークを配布する-</a></li>
<li><a href="https://www.micss.biz/2021/10/18/4552/" rel="noopener" target="_blank">Webクリップの作り方と各設定値を徹底解説 [前編] -Webクリップとは何か(2)-</a></li>
<li><a href="https://www.micss.biz/2021/10/25/4678/" rel="noopener" target="_blank">Webクリップの作り方と各設定値を徹底解説 [後編] -Webクリップとは何か(3)-</a></li>
<li><a href="https://www.micss.biz/2021/11/15/4804/" rel="noopener" target="_blank">WebクリップはSafariを削除していても使用できる(ようになった) -Webクリップとは何か(4)-</a></li>
</ul>
<p>&nbsp;</p>
<h3>配信方法選定チャートの解説(2) : PoCや実験</h3>
<p>Webが無理なら、次は<a href="https://developer.apple.com/jp/testflight/" taget="_blank">TestFlight</a>の活用を検討して下さい。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2025/06/20250602_flowchart_2.jpg" alt="" width="600" class="alignnone" /></p>
<p>TestFlightの最大のメリットは<strong>審査関連の面倒臭さがない</strong>ことです。ユーザが100人以下ならTestFlightの内部テスト、ユーザが100人より多く10000人以下なら外部テストが使えます。外部テストには審査が必要ですが、あってないようなものですし、バージョンを変えない限り無審査というハックもあります。</p>
<p>TestFlightのデメリットは主に以下2つ。</p>
<ul>
<li>有効期間は90日</li>
<li>AppleIDが必要</li>
</ul>
<p>ただ前者は1,2ヶ月ごとに定期的にビルドを作ればほぼ解決です。後者は、ABMを使って全社員にAppleID(Manged AppleID)の供与が容易になっているため、昔に比べてハードルは下がってます。Managed AppleID については以下をご覧下さい。</p>
<ul>
<li><a href="https://www.micss.biz/2024/06/10/7129/">AppleIDの新規登録方法 2024年保存版 &#8211; ABMからの登録 &#8211;</a></li>
</ul>
<p>従業員が多い場合は EntraID や GoogleWorkspace との連携も活用できますので、TestFlightのAppleID要件はデメリットにならないケースもあります。</p>
<p>&nbsp;</p>
<h3>配信方法選定チャートの解説(3) : 本番稼働でも審査回避</h3>
<p>TestFlight が適切でない場合、AdHoc 配布を検討することをお勧めします。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2025/06/20250602_flowchart_3.jpg" alt="" width="600" class="alignnone" /></p>
<p>繰り返しますが、業務用iOSで一番面倒でかつ運用に制約を与えるのは審査関連です。それを避けるためのWebであり、TestFlight であったわけですが、それらがダメなら次は AdHoc です。</p>
<p>AdHoc についての詳細は以下をご覧ください。</p>
<ul>
<li><a href="https://www.micss.biz/2023/08/07/6203/" rel="noopener" target="_blank">AdHocとは何か</a></li>
<li><a href="https://www.micss.biz/2022/12/12/5731/" rel="noopener" target="_blank">AdHocアプリを社外ユーザに配布できるのか</a></li>
<li><a href="https://www.micss.biz/2022/11/28/5695/" rel="noopener" target="_blank">AdHoc配布はテスト用途以外に使用できるのか</a></li>
</ul>
<p>Apple Developer Program に明示的に端末識別子(UDID)を登録して稼働させる方法で、端末種別ごとに上限100台以下に抑えられるなら、ADEP の InHouse に近しい運用が可能です。</p>
<p>先に書いたTestFightの「AppleIDが必要」という条件は満たせないが、100台以下のPoCや実験アプリである場合でも有用です。</p>
<p>&nbsp;</p>
<h3>配信方法選定チャートの解説(4) : AppStoreからの配信</h3>
<p>チャートもここまでくると、AppStoreからの本配信しか選択肢がありません。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2025/06/20250602_flowchart_4.jpg" alt="" width="600" class="alignnone" /></p>
<p>AppStoreからの本配信にも種類があり、最初に検討すべき配信方法は「公開アプリ」です。我々が個人利用で App Store で見かけるようなアプリと同じ位置付けとなります。社名や関連名で検索した時にアプリの存在を知られても良い場合に採用できます。</p>
<p>公開アプリをまずお勧めするのは、他の選択肢である非公開アプリ(カスタムApp)と非表示アプリに比べて、実績のある開発会社が多くアプリ開発から配信までスムーズに進む可能性が高いからです。</p>
<p>非表示アプリなら追加の特別な審査が必要だったり、非公開アプリ(カスタムApp)ならABM/MDMの知識や運用体制も必要だったりと少々面倒臭くなります。</p>
<p>&nbsp;</p>
<h3>配信方法選定チャートの解説(5) : カスタムApp or 非表示アプリ</h3>
<p>ここまでくるということは、Web技術では実現できず、まとまった端末数で本稼働させる必要があり、世間に知られたくないアプリです。この場合、どんな端末で動作させるのか？という視点で三択になります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2025/06/20250602_flowchart_5.jpg" alt="" width="600" class="alignnone" /></p>
<p>ひとことでカスタムAppといっても配信の仕方には2種類あり、インストールの仕方も変わります。どのような端末に配信するかに応じてどちらかを選ぶことになります。</p>
<ul>
<li>カスタムApp (管理対象ライセンス)</li>
<li>カスタムApp (引き換えコード)</li>
</ul>
<p>大半の場合(国内従業員向けの非公開アプリ)は、前者です。一方で以下に該当する場合は後者です。</p>
<ul>
<li>端末を会社支給せず個人端末を業務に使わせるBYODスタイル</li>
<li>MDMが導入できないケース</li>
</ul>
<p>後者の引き換えコードを選んだ場合、業務用アプリが個人AppleIDに紐づいてインストールされる(つまり退社後も使われる可能性がある)点には注意して下さい。万が一に備えて認証機構を備えたアプリでなければ採用はできないでしょう。</p>
<p>また、日本企業としてABMの利用申請を行った場合、海外従業員のBYOD端末に対しては、カスタムAppの引き換えコードライセンスは使用できません。必然的に非表示アプリを選択することになります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2025/06/20250602_distribution_app_to_abroad.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(研修資料より。AppStoreは国ごとに分かれており、カスタムAppの配信は国単位で閉じる必要がある)</span></p>
<p>あるいは、端末管理や運用体制まで調整して「国内法人で調達した端末に管理対象ライセンスでインストールして、海外従業員に当該端末を使わせる」という逃げ道を採用することもできます。</p>
<p>海外従業員への非公開業務用アプリの配布は、カスタムAppやライセンスの種類、ABM/MDMの十分な理解がないと難しいので余りお勧めしません。素直にWebアプリにしましょう(笑) というのは冗談で、非表示アプリか公開アプリにしてログイン機構を設けるのがベストです。</p>
<p>&nbsp;</p>
<p>以上、<strong>ADP前提で自社従業員が使うアプリをどう配信するか</strong>の判定チャートを解説してきました。配信方法を決定する社内ルールを作る時の参考として頂ければと思います。もし「このアプリはどの配信方法が良いんだろう？」と気になる場合、<a href="https://www.micss.biz/consultation/">こちら</a>よりお問い合わせ下さい。</p>
<p>なお、本チャートは ADEP InHouse は考慮していません。ADEPは意外にもまだ使えている企業が多く、徐々に移行を強いられている印象ですが、まだ使えるなら使い続けるのが最善です。カスタムApp化を考える時に本ページのチャートを参考にして下さい。</p>
<p>また本チャートでは、<strong>従業員が使用するアプリ</strong>を前提としました。もし「販売代理店に使って貰うアプリ」「ソリューションを販売した顧客企業の従業員が使うアプリ」のように自社従業員利用でない場合は少し異なるので注意して下さい。非従業員のケースはまた別の機会に紹介したいと思います。</p>
]]></content:encoded>
			</item>
		<item>
		<title>iOSDC Japan 2023 で登壇してADEPの現状とカスタムApp移行についてお話しました</title>
		<link>https://www.micss.biz/2023/10/02/6313/</link>
		<pubDate>Sun, 01 Oct 2023 22:00:41 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[ADEP]]></category>
		<category><![CDATA[AdHoc]]></category>
		<category><![CDATA[ADP]]></category>
		<category><![CDATA[カスタムApp]]></category>

		<guid isPermaLink="false">https://www.micss.biz/?p=6313</guid>
		<description><![CDATA[以前の投稿で書いた通り、iOSDC Japan 2023 の2日目(9/2)に20分間のトークをさせて頂きました。2020年から連続で4回目となりますが、今回のテーマはこちら。相変わらずエンタープライズに全振りしています [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="/2023/07/24/6182/" rel="noopener" target="_blank">以前の投稿</a>で書いた通り、<a href="https://iosdc.jp/2023/" rel="noopener" target="_blank">iOSDC Japan 2023</a> の2日目(9/2)に20分間のトークをさせて頂きました。2020年から連続で4回目となりますが、今回のテーマは<a href="https://fortee.jp/iosdc-japan-2023/proposal/dc6c47d4-171b-4fa4-bb26-8ccb9b220703" rel="noopener" target="_blank">こちら</a>。相変わらずエンタープライズに全振りしています。</p>
<p><a href="https://fortee.jp/iosdc-japan-2023/proposal/dc6c47d4-171b-4fa4-bb26-8ccb9b220703" rel="noopener" target="_blank"><img src="https://www.micss.biz/wp-content/uploads/2023/10/20231002_iosdc2023_title.jpg" alt="" width="600" class="alignnone" /></a></p>
<p>今回もリアルとオンラインの併催となりました。自分は昨年同様に現地で登壇させて貰った次第です。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/10/20231002_iosdc2023_hole.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(2日目の会場朝一の様子)</span></p>
<p>コロナ禍を経て外出機運が高まっていたこともあってか、担当させて貰ったトークには20人程度の方に参加して頂きました。会場にも人は多く、どのトークも会場の席が埋まっていて盛況だったように思います。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/10/20231002_iosdc2023_talk.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(CC-BY-NC 4.0 / iOSDC2023の公式アルバムから。今回のトークは昨年以上にオフライン・オンラインでご覧頂いた)</span></p>
<p>&nbsp;</p>
<p>自分が担当したトークでは、まずADEPの歴史を振り返り、2023年がADPへの移行という過渡期にある現状をお伝えしました。あわせてADEPの契約が万が一更新できなかった場合の配布済みInHouseアプリの挙動についても、弊社調査をもとにご紹介しました。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/10/20231002_adep_history.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(2020年台に入ってから徐々に厳しくなってきた)</span></p>
<p>ADEPはオワコンとただ煽るということはしたくなかったので、<a href="https://developer.apple.com/jp/programs/enterprise/" rel="noopener" target="_blank">公式サイト</a>の条件さえ満たしていれば暫くADEPも更新維持できるであろうという考えは強調しました。</p>
<p>ADEPからの主だった移行先はカスタムAppになるわけですが、カスタムApp化で実際にハマりそうなポイントを弊社経験を元に幾つかご紹介し、ADEP更新をリジェクトされてから動くのではなく、事前にカスタムAppを申請する直前までの手順演習もお勧めさせて貰った次第です。カスタムApp以外に、AdHoc配布や非表示Appに移行することも可能であり、どのようなシチュエーションで採用しうるのかも紹介できました。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/10/20231002_unlistedapp.jpg" alt="" width="600" class="alignnone" /></p>
<p>今回のトークでお話した情報が、ADEPのInHouseアプリで運用中の多くの企業で円滑に移行できる一助となれば幸いです。</p>
<p>トーク後には、お聞き頂いた方々から、実際に直面している状況でしたとか参考になったなどのコメントを沢山頂きましたので、タイミング的にもテーマ的にも良かったのかなと思います。今回の資料は<a href="https://doc.feedtailor.jp/seminar/20230902_iosdc2023/iOSDC2023_day1TrackC1615_adep2adp.pdf" rel="noopener" target="_blank">こちら</a>からダウンロードして頂くことができますので、よろしければご覧下さい。</p>
<p>&nbsp;</p>
<p>今回も現地に足を運んでいましたので、一参加者として色んなトークをお聞きして勉強させて貰いました。関係者の皆さん、お疲れ様でした。もし可能であれば次回もまた何かエンタープライズiOS関連のテーマでプロポーザルを提出させて頂こうかと思います。</p>
]]></content:encoded>
			</item>
		<item>
		<title>AdHocとは何か</title>
		<link>https://www.micss.biz/2023/08/07/6203/</link>
		<pubDate>Sun, 06 Aug 2023 22:00:20 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[AdHoc]]></category>

		<guid isPermaLink="false">https://www.micss.biz/?p=6203</guid>
		<description><![CDATA[(最終更新日 : 2023/8/24) AdHoc は、Appleの審査を回避して非公開に業務用iOSアプリを配布する方法の一つです。 従来、同要件に対しては InHouse を選択することが常でしたが、InHouse  [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>(最終更新日 : 2023/8/24)</p>
<p>AdHoc は、Appleの審査を回避して非公開に業務用iOSアプリを配布する方法の一つです。</p>
<p>従来、同要件に対しては InHouse を選択することが常でしたが、InHouse アプリを生成するのに必要な契約(ADEP)は新規契約が事実上不可となり(2020年頃)、近年は契約更新できない(2022年以降)ケースも散見され、状況が変化してきています。</p>
<p>この状況を鑑みると用途や制限を含め改めてAdHocを正しく理解しておくことは重要でしょう。ということで、本稿では AdHoc について紹介します。以下目次となります。</p>
<ul>
<li><a href="#1">用語の定義</a></li>
<li><a href="#2">AdHocの特徴</a></li>
<li><a href="#3">AdHocアプリの起動端末制限の仕組み</a></li>
<li><a href="#4">端末数上限100台の数え方についての注意点</a></li>
<li><a href="#5">AdHocアプリの配布方法</a></li>
</ul>
<p>参考にできる投稿へのリンクも示していますので、併せてご覧下さい。</p>
<p id="1">&nbsp;</p>
<h3>用語の定義</h3>
<p><strong>AdHoc</strong>とは、Apple Developer サイトで取得した AdHoc 用 Provisioning Profile を使ってiOSアプリを署名生成することです。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/08/20230807_adhoc_provisioningprofile.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(Apple Developer サイトで AdHoc 用の Provisioning Profile を作ろうとしているところ)</span></p>
<p>また、そのようにして署名・生成されたiOSアプリのことを<strong>AdHocアプリ</strong>と呼び、AdHocアプリを iOS 端末にインストールする・させることを<strong>AdHoc配布</strong>と言います。</p>
<p id="2">&nbsp;</p>
<h3>AdHocの特徴</h3>
<p>特徴は以下のとおりです。</p>
<ul>
<li>Appleの審査が不要</li>
<li>特定のiOS端末にアプリをインストール可能</li>
<li>インストール可能な端末数は100台まで</li>
<li>ADPとADEPの両方で利用可能</li>
</ul>
<p>TestFlight がまだ存在しなかった時代、AdHoc配布はAppleへの審査に提出する前の関係者テストに使われていましたが、今は公式テストツールとして <a href="https://developer.apple.com/jp/testflight/" rel="noopener" target="_blank">TestFlight</a> があります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/08/20230807_testflight.jpg" alt="" width="600" class="alignnone" /></p>
<p>TestFligthは登場から10年以上も経っており、洗練されて使い易くなっています。ADP(Apple Developer Program)の契約があるならテストは原則 <a href="https://developer.apple.com/jp/testflight/" rel="noopener" target="_blank">TestFlight</a> 一択で、AdHoc をテスト用途に使うのは古いやり方です。では AdHoc は何のために使うのでしょうか。</p>
<p>テストの役割を TestFlight に譲った今の AdHoc は、<strong>Appleの審査に出したくない＆台数上限の制限を許容しうるアプリを社内や関係者に本配信する手法</strong>であると言えます。台数上限を許容できるなら、InHouseアプリと同様に非公開・非審査の業務用アプリ配信手段として利用できます。詳しくは以下をご覧下さい。</p>
<ul>
<li><a href="/2022/11/28/5695/">AdHoc配布はテスト用途以外に使用できるのか</a></li>
</ul>
<p id="3">&nbsp;</p>
<h3>AdHocアプリの起動端末制限の仕組み</h3>
<p>Apple Developer のサイトで AdHoc用の Provisioning Profile を作成する時、証明書とAppIDの選択に加えて、デバイスを選択する画面が現れます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/08/20230807_adhoc_udid.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(AdHoc用のProvisioning Profile作成時にデバイスを選択している様子)</span></p>
<p>AdHoc 用の Provisioning Profile を使って生成された AdHoc アプリは、このデバイス一覧でチェックした端末でのみ起動できるアプリとなります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/08/20230807_adhocipa.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(iOSアプリである ipa ファイルの構造と iOS がAdHocアプリを起動する仕組み)</span></p>
<p>iOSはAdHocアプリの ipa ファイル内に含まれる Provisioning Profile の中を見て、デバイス一覧に自分自身が含まれるかを確認します。含まれていればインストール成功ですし、なければインストールすらできません。</p>
<p>この際にデバイスの識別情報として使われるのが <strong>UDID</strong> です。このUDIDをあらかじめ Apple Developer サイトで登録しておき、Provisioning Profile 生成時に紐付けるわけです。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/08/20230807_devices.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(Apple Developerの Devices の画面。ここからUDIDとデバイス名を登録していく)</span></p>
<p>AdHocアプリを動作させる端末候補の UDID は、あらかじめ収集しておかなければなりません。UDID の取得方法は以下が参考になる筈です。</p>
<ul>
<li><a href="/2022/06/13/5335/">iPhoneやiPadのUDIDを調べる方法 全10種</a></li>
</ul>
<p>アプリを動作させたいデバイスをあらかじめ選定する、AdHoc ではこれが前提となります。UDID の収集は煩わしいと考えられることがありますが、業務用の世界においては全く問題になりません。上記投稿の通り、業務用の世界では MDM の導入が基本でありMDMの機能により UDID の収集は容易だからです。</p>
<p id="4">&nbsp;</p>
<h3>端末数上限100台の数え方についての注意点</h3>
<p>Apple Developer のサイトでは UDID を<strong>100台</strong>しか登録できません。AdHoc 用の Provisioning Profile を作成する時に、その限られた100台から起動させたい端末を選ぶわけです。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/08/20230807_adcho_features.jpg" alt="" width="600" class="alignnone" /></p>
<p>ただこの100台という上限数には、注意点が2つあります。</p>
<p>1つは<strong>機種ごとの上限がある</strong>ということ。Developer Program の契約配下で iPad / iPhone / AppleWatch / AppleTV の各機種毎に100台分のUDID登録が可能です。以前は機種に関係なく全機種まとめて合算の100台上限でしたが緩和されました。</p>
<p>もう1つの注意点は、台数カウントのされ方。分かり易さのために、ここでクイズをしてみましょう。Apple Developer のサイトで iPhone について以下の操作を行った場合、登録可能残数は何台になるでしょうか？</p>
<ol>
<li>10台分のUDIDを新規で登録する</li>
<li>20台分のUDIDを追加で登録する</li>
<li>5台分のUDIDを不要になったので削除する</li>
</ol>
<p>10 + 20 &#8211; 5 = 25 なので、残り75台分のiPhoneが登録できる…わけではありません。答えは70台。間違い易いポイントなので要注意です。<strong>削除しても登録枠はすぐには回復しません</strong>。回復するのはADPやADEPの契約更新の時のみとなります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/08/20230807_reset_devices.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(契約更新時のみ削除分が回復する)</span></p>
<p>これを<strong>デバイスのリセット</strong>と言います。ADPの画面には下図のように、リセットできる日が明記されています。この例でいうと2023年9月25日を迎えなければ、削除した分の枠は回復しないということです。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/08/20230807_adp_resetdevice.jpg" alt="" width="600" class="alignnone" /></p>
<p>下手すると枠が空くまでに最大約1年待つことになる可能性があります。100台になったら不要なものを削除すれば良い&#8230;では運用がうまくいきません。<strong>UDID登録は計画的に行う</strong>ことが必要です。最近のXcodeでは、油断してるとドンドン勝手にデバイスが登録されてしまって気がつけば上限…なんてことになりがちなことにも注意しましょう。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/08/20230807_xcode_register_device.jpg" alt="" width="200" class="alignnone" /><br /><span class="caption">(Xcodeが勝手にデバイスを登録しようとしているダイアログ)</span></p>
<p>外部委託する先が多数あるような大手企業においては、ルールを定めず開発会社に丸投げしているとアッという間にUDIDが枯渇します。特に ADP 契約下で TestFlight を使わずに AdHoc でテストを行う古いやり方をしていると、テストもまともにできない状況に陥りかねません。最悪、端末を融通しあうための調整といった無駄なテスト工数が増えます。テスト設計については以下の投稿も参考にして下さい。</p>
<ul>
<li><a href="/2023/07/10/6108/">カスタムAppで顧客側の受け入れテスト(UAT)を実施する際の注意点</a></li>
</ul>
<p id="5">&nbsp;</p>
<h3>AdHocアプリの配布方法</h3>
<p>AdHoc アプリは、Apple の審査を必要としませんので様々な方法で配布できます。以下の投稿を参照して、運用に都合の良い方法を選んで下さい。</p>
<ul>
<li><a href="/2023/02/06/5824/">ipaファイルをiOS端末にインストールする方法 全8種</a></li>
</ul>
<p>なお、自由に配布できるからと好き勝手に配布しまくって良いわけではありません。Developer Program の<a href="https://developer.apple.com/jp/support/terms/
" target="_blank">使用許諾契約書</a>にきちんと配布可能範囲についての記載がありますので、確認しておきましょう。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/08/20230807_adp_agreement.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(研修資料より。AdHocの配布可能範囲は厳密に定められている)</span></p>
<p>以下の投稿もご覧下さい。使用許諾契約書の弊社見解を示していますが、各社においては念のために自社法務部門の確認を行うことが推奨されます。</p>
<ul>
<li><a href="/2022/12/12/5731/">AdHocアプリを社外ユーザに配布できるのか</a></li>
</ul>
<p>&nbsp;</p>
<p>本稿では、AdHocについて詳細を解説しました。特徴や制約をよく理解して有効活用して頂きたいと思います。</p>
]]></content:encoded>
			</item>
		<item>
		<title>カスタムAppで顧客側の受け入れテスト(UAT)を実施する際の注意点</title>
		<link>https://www.micss.biz/2023/07/10/6108/</link>
		<pubDate>Sun, 09 Jul 2023 22:00:44 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[AdHoc]]></category>
		<category><![CDATA[TestFlight]]></category>
		<category><![CDATA[カスタムApp]]></category>
		<category><![CDATA[ケーススタディ]]></category>

		<guid isPermaLink="false">https://www.micss.biz/?p=6108</guid>
		<description><![CDATA[ご相談に無償回答したお問い合わせの中から、シェアする価値のあるものをご紹介するケーススタディ企画。 今回は、VR関係の事業を営まれている非上場企業様からの問い合わせとなります。カスタムAppを顧客企業に提供する時のテスト [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>ご相談に無償回答したお問い合わせの中から、シェアする価値のあるものをご紹介するケーススタディ企画。</p>
<p>今回は、VR関係の事業を営まれている非上場企業様からの問い合わせとなります。<strong>カスタムAppを顧客企業に提供する時のテスト設計</strong>についてのご相談。実は、ケースとしては<a href="/2023/06/26/6060/">前回</a>と似ているのですが「テスト」にフォーカスがあたった話になります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/07/20230710_customapp.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(<a href="/consultation/">研修</a>資料より。自社製品のカスタマイズバージョンをカスタムAppとして他社提供するパターン)</span></p>
<p>以下が目次です。順番に見ていきましょう。</p>
<ul>
<li><a href="#1">質問 : カスタムAppにおいて顧客の受け入れテストはどう実施するのでしょうか？</a></li>
<li><a href="#2">回答 : TestFlight内部テストを使います</a></li>
<li><a href="#3">解説1 : カスタムAppの受け入れテストに「王道」はない</a></li>
<li><a href="#4">解説2 : ADPのAdHocを受け入れテストに使うのは悪手</a></li>
<li><a href="#5">解説3 : 本番用と異なる検証用の別アプリに存在意義はあるのか</a></li>
</ul>
<p id="1">&nbsp;</p>
<h3>質問 : カスタムAppにおいて顧客の受け入れテストはどう実施するのでしょうか？</h3>
<p><strong>Q.</strong> 当社はVR関連の自社ソリューション(アプリ)を開発・販売している企業です。個人向けにAppStore公開アプリの提供をする一方で、顧客企業に非公開のカスタマイズ版を開発し、当該顧客ADEP契約のInHouseで署名して提供してきました。</p>
<p>現在、顧客からADP(カスタムApp)への移行を依頼されており、あわせてテストの手順策定を求められていますが、カスタムAppでどのように顧客側の受け入れテスト(UAT : User Acceptance Test)を進めていくのかが分かりません。</p>
<p>ADEPの時はInHouse配布をすれば良かったので余り悩むことがなく、検証用アプリと本番用アプリを分けてビルド・配布して受け入れテストと実配布を行っていました。カスタムAppではどのように顧客の受け入れテストを設計すれば良いのでしょうか？</p>
<p id="2">&nbsp;</p>
<h3>回答 : TestFlight内部テストを使います</h3>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/07/20230710_testflight.png" alt="" width="600" class="alignnone" /></p>
<p><strong>A.</strong> 仰る通りADPではADEPのようにはいかないため、顧客の受け入れテスト(UAT)の要件に合ったテスト設計を適宜行う必要があります。具体的に回答するには、エンドユーザ企業様のテスト要件ヒアリングが必要です。が、今回それはできないとのことですので、残念ながら抽象的な回答となります。</p>
<p>カスタムAppでは、<strong>原則 TestFlight の内部テストを使います</strong>。ですので <a href="https://developer.apple.com/jp/testflight/" rel="noopener" target="_blank">TestFlight</a> をよく調査し、顧客要件にあったテストを設計して下さい。基本的には以上です。</p>
<p>調査用に設計のコツをキーワードでお知らせすると、内部グループをうまく使い分けること、ビルドのコンプライアンス設定方針を考えること、の2点でしょうか。</p>
<p><a href="https://developer.apple.com/jp/testflight/" rel="noopener" target="_blank"><img src="https://www.micss.biz/wp-content/uploads/2023/07/20230710_apple_testflight.jpg" alt="" width="600" class="alignnone" /></a></p>
<p>一点、テストの考え方について補足いたします。</p>
<p>検証用アプリと本番用アプリを分けるのは余り良い方法ではありません。時折見られる手法ですが、そもそも実行バイナリとして別物を使って動作確認するのは、本当に「検証」と言えるのでしょうか？</p>
<p>TestFlight は AppStore アプリのために用意されており、「同一バイナリ」をテスト用と本番用とに配信し分けて、真の「検証」と実稼働を共存できる仕組みになっています。カスタムApp は AppStore アプリですから、テストも TestFlight の考え方や仕様に合わせるのが最善です。</p>
<p>我流を通そうとすると必ずどこかで進めにくさや違和感・無駄が発生することになります。特別な事情がない限り原則アプリは1つとし、検証と本番の切り替えは実装側で吸収することをお勧めします。</p>
<p id="3">&nbsp;</p>
<h3>解説1 : カスタムAppの受け入れテストに「王道」はない</h3>
<p>テストをどう行うか？は、カスタムAppを開発・テスト・配布まで自社完結できないケースで必ずぶち当たる壁です。</p>
<p>ADEP(InHouse)では好きに配布すれば良かったので課題にならなかったのですが、ADP(カスタムApp)では Apple の用意するテストツールである <a href="https://developer.apple.com/jp/testflight/" rel="noopener" target="_blank">TestFlight</a> を使って、自社なりの、アプリなりの、「テスト設計」が必要になります。</p>
<p><a href="https://developer.apple.com/help/app-store-connect/test-a-beta-version/overview-of-testflight/" rel="noopener" target="_blank"><img src="https://www.micss.biz/wp-content/uploads/2023/07/20230710_testflight_help.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption"></a>(学習教材として<a href="https://developer.apple.com/help/app-store-connect/test-a-beta-version/overview-of-testflight/" rel="noopener" target="_blank">TestFlightの公式ドキュメント</a>がある。これをよく読み実際に試すことが推奨される)</span></p>
<p><a href="https://developer.apple.com/jp/app-store/review/guidelines/" rel="noopener" target="_blank">App Store Review ガイドライン</a>のような指針は特に与えられていませんから、TestFlight を十分に理解した上で、個々事情を考慮したテストの段取りを作り上げないといけません。これを誤ると開発がうまく進まなかったり、開発体制をスケールさせにくくなったりします。</p>
<p>また TestFlight は App Store Connect と無縁ではいられません。App Store Connect の仕様変更に影響を受ける場合もありますので、「テスト手順を策定する」といったミッションは、意外に難しかったりします。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/07/20230710_wwdc2021_appstoreconnect.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(WWDC2021の動画から。カスタムApp では App Store , App Store Connect, TestFlight の全てを理解する必要がある)</span></p>
<p>ソフトウェア開発全般に言える事ですが良いソフトウェアの影には必ず良いテスト設計が存在します。カスタムApp化には、エンドユーザ側にも開発会社側にも TestFlight の理解が必要不可欠です。</p>
<p>弊社では、カスタムApp移行を御支援する際に「この方法なら概ね大丈夫」というパターンをベースにして、企業ごとの要件で調整してご提案することが多いです。</p>
<p id="4">&nbsp;</p>
<h3>解説2 : ADPのAdHocを受け入れテストに使うのは悪手</h3>
<p>テストにAdHoc配布を使えば良いのでは？という意見も一部にはありますが、弊社では推奨していません。大手企業では特に、アプリの数やiOS端末の利用部門が増えてくると「詰んで」しまうからですね。どういうことか。</p>
<p>AdHoc配布では、配信先の端末数が100台までという上限があります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/07/20230710_adhoc.jpg" alt="" width="600" class="alignnone" /></p>
<p>特に大手企業あるあるですが、部門別に色んなアプリを作り、外部委託先が何社もあって、しかも多段の商流を組んでいて関係者が多い…なんて状況では、すぐ上限を振り切ります。開発会社が開発側のテスト用に勝手に大量登録してしまった&#8230;なんてケースもありますね。</p>
<p>そして、あるタイミングで突然「テスト用端末を追加できない」と報告があがり「詰む」ことになります。「どの端末を消すか調整しよう」と動いたところで残念ながら手遅れで、詰んだ状態はすぐには解消しません。削除した端末数分をすぐ追加登録できるわけではないからです。ADP契約の更新日まで待たなければなりません。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/07/20230710_udidreset.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(リセット日とはADPの契約更新日。削除した端末個数分を新たな追加枠として使うにはリセット日を待つ必要がある)</span></p>
<p>将来、アプリの数も関係者も増えない、と断定できるなら TestFlight を使わず AdHoc をテスト用途に使うのもありかも知れません。</p>
<p>いつ上限を超えるかコントロールできず、開発側の勝手な登録を禁止することもできない AdHoc は、外部委託が基本の大手企業においては特にテスト用途には不向きです。むしろ、稼働台数が数十台程度という制約付きで InHouse 配布と同じ運用ができる配布手段と捉えたほうが良いでしょう。詳しく以下をご覧下さい。</p>
<ul>
<li><a href="/2022/11/28/5695/">AdHoc配布はテスト用途以外に使用できるのか</a></li>
<li><a href="/2022/12/12/5731/">AdHocアプリを社外ユーザに配布できるのか</a></li>
</ul>
<p>弊社では、開発を外部委託している企業様のADPでは、AdHoc配布をテスト用途に使わないことを推奨しています。</p>
<p id="5">&nbsp;</p>
<h3>解説3 : 本番用と異なる検証用の別アプリに存在意義はあるのか</h3>
<p>今回のご相談では「検証用」アプリと「本番用」アプリとが別アプリだということでした。実は時々ありますが、弊社では余り推奨していません。</p>
<p>AppStore アプリにおいては、検証と本番をアプリ実体で分けるものではありません。Apple が用意する仕組みを読み解けば、Appleは<strong>検証と本番はアプリではなく配信ルートで分けるべき</strong>、と考えていることが分かります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/07/20230710_wwdc2021_xcode-asc-testflight-appstore.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(WWDC2021の動画から。開発したアプリ(ipa)はテストならTestFlight、本番はAppStoreへ。行き先が異なるだけ)</span></p>
<p>同じアプリの用途違いでアプリの実体を複数作るべきではないのです。</p>
<ul>
<li>検証用アプリと本番用アプリが別々に存在する</li>
<li>検証用配信ルートとしてTestFlightが、本番用配信ルートとしてAppStore+ABM+MDMが存在する</li>
</ul>
<p>これをうまく使い分けられるでしょうか。検証用のアプリを本番用途の App Store → ABM → MDM と流す意味は何でしょう？ただでさえ複雑なカスタムApp配信に、自ら複雑さを加えることはないと考えます。</p>
<p>少し話は変わりますが、その昔、一般消費者向けの有償アプリの世界でも似たようなことがありました。「機能制限つきのFree版アプリ」と「フル機能の有償版アプリ」と、2つの別物アプリを開発会社は作り分けていたのです。弊社もやっていました。懐かしいですね。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/07/20230710_appstore_liteversion.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(初期のAppStoreで弊社アプリを一覧した画面。フル機能の有償アプリ(右)と無償のLITE版(左)を別アプリで提供していた)</span></p>
<p>このような手法でアプリ数が無駄に増えることをAppleは良しとせず、1つのアプリで両役割を持たせられるよう <a href="https://developer.apple.com/jp/in-app-purchase/" rel="noopener" target="_blank">In App Purchase (アプリ内課金)</a> の仕組みを用意しました。それが2009年のこと。その後 AppStore からは、1つのアプリでFree版/有償版の2種類存在するケースは無くなっていきます。</p>
<p>実は業務用でも一緒です。特別な理由がない限りアプリは原則1つとし、実装で工夫をして同じアプリを用途ごとに使い分けられるようにするのをお勧めします。MDMからの本番用配信でのみアプリの特別な設定値を有効にする Managed App Configuration も活用できるでしょう。以下もご覧下さい。</p>
<ul>
<li><a href="/2021/08/02/4187/">iOSDC JAPAN 2021で Managed App Configuration について講演します</a></li>
<li><a href="/2021/11/01/4751/">iOSDC2021で Managed App Configuration について講演しました -YouTubeで動画公開されました-</a></li>
</ul>
<p>&nbsp;</p>
<p>以上、カスタムAppにおけるユーザ受け入れテスト(UAT)についての質問＆回答と解説でした。</p>
<p>カスタムAppへの移行ではハマりどころが幾つかありますが、テストはその中でも比較的大きめのハマりどころです。<a href="https://developer.apple.com/jp/app-store-connect/" rel="noopener" target="_blank">App Store Connect</a>、<a href="https://www.apple.com/app-store/" rel="noopener" target="_blank">App Store</a>、<a href="https://developer.apple.com/jp/testflight/" rel="noopener" target="_blank">TestFlight</a> に加え、<a href="https://www.apple.com/jp/business/it/" rel="noopener" target="_blank">ABM</a> や <a href="/2020/01/27/1164/">MDM</a> も理解していないと、業務用アプリのライフサイクル全体を設計できないからですね。関係者が多く、事前に手順書等を規定しなければならない大手企業の場合は結構大変です。</p>
<p>繰り返しになりますが、TestFlight をよく調査研究することが推奨されます。今後、カスタムAppの観点からのTestFlightについても解説していこうと思います。</p>
]]></content:encoded>
			</item>
		<item>
		<title>Appleの審査を回避してアプリを配信する方法 全4種</title>
		<link>https://www.micss.biz/2023/06/12/6023/</link>
		<pubDate>Sun, 11 Jun 2023 22:00:05 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[ADEP]]></category>
		<category><![CDATA[AdHoc]]></category>
		<category><![CDATA[ADP]]></category>
		<category><![CDATA[MDM]]></category>
		<category><![CDATA[Webクリップ]]></category>

		<guid isPermaLink="false">https://www.micss.biz/?p=6023</guid>
		<description><![CDATA[(最終更新日 : 2023/8/29) Appleの審査を避けたい事情はアプリによって様々です。 そもそも審査の手続きが面倒だ、プライベートなAPIを使いたい、本来用途と異なるハック的なAPIの使い方をしている、AppS [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>(最終更新日 : 2023/8/29)</p>
<p>Appleの審査を避けたい事情はアプリによって様々です。</p>
<p>そもそも審査の手続きが面倒だ、プライベートなAPIを使いたい、本来用途と異なるハック的なAPIの使い方をしている、<a href="https://developer.apple.com/jp/app-store/review/guidelines/" rel="noopener" target="_blank">AppStore Review Guidline</a> に反した事をやりたい&#8230;などなど。B2Bの世界では、そもそも「ウチで使う業務アプリをなぜ審査されなくてはならない？」という感覚の方もいます。</p>
<p>理由はどうあれ業務用iOSアプリの世界では、Appleの審査を避けるなら InHouse(ADEP) 一択だ&#8230;と誤認されてきました。しかし実は、Appleが InHouse(ADEP) 以外にも審査回避手段を用意していることは意外に知られていません。InHouse(ADEP) が余りにも強力過ぎて(審査不要・無制限配布)、他の手段に目が向けられることがほとんど無かったからでしょう。</p>
<p>そこで本稿では、InHouse(ADEP) を含め、改めてアプリ審査を回避できる配布手段を整理してみたいと思います。当然ながらすべて公式に提供されているもの。まず以下に一覧を示します。</p>
<table class="table">
<thead>
<tr>
<th>名称</th>
<th>必要条件</th>
<th>審査</th>
<th>配布数制限</th>
<th>使用可能用途</th>
</tr>
</thead>
<tbody>
<tr>
<th><a href="#1">InHouse</a></th>
<td>ADEP</td>
<td>無し</td>
<td>無制限</td>
<td>テスト/リリース</td>
</tr>
<tr>
<th><a href="#2">AdHoc</a></th>
<td>ADP/ADEP</td>
<td>無し</td>
<td>100台</td>
<td>テスト/リリース</td>
</tr>
<tr>
<th><a href="#3">TestFlight 内部テスト</a></th>
<td>ADP</td>
<td>(事実上)無し</td>
<td>100人 x 30台</td>
<td>テスト</td>
</tr>
<tr>
<th><a href="#4">Webクリップ</a></th>
<td>MDM</td>
<td>無し</td>
<td>無制限</td>
<td>テスト/リリース</td>
</tr>
</tbody>
</table>
<p>関連する投稿へのリンクも貼っていますので併せて参照して下さい。それでは順に見ていきましょう。</p>
<p id="1">&nbsp;</p>
<h3>InHouse &#8211; ADEP (Apple Developer Enterprise Program)</h3>
<p>審査回避手段として一択と誤認されているぐらいですから、真っ先に思いつくのがこちらでしょう。</p>
<p><a href="https://developer.apple.com/jp/programs/enterprise/" rel="noopener" target="_blank"><img src="https://www.micss.biz/wp-content/uploads/2023/06/20230612_adep.jpg" alt="" width="600" class="alignnone" /></a></p>
<p>詳細については以下をご覧下さい。</p>
<ul>
<li><a href="/2019/11/28/980/">ADEP (Apple Developer Enterprise Program) とは何か</a></li>
</ul>
<p>しかしAppleは、2019,2020年頃から新規受付を<strong>事実上停止</strong>しています。また、2022年からその更新も審査制に変わりました。審査の結果、更新を認められなかった、つまり InHouse が使えなくなった企業も出始めています。詳しくは以下をご覧下さい。</p>
<ul>
<li><a href="/2020/06/19/1774/">ADEP(Apple Developer Enterprise Program)はもう取得することができないと諦めたほうが良い理由</a></li>
<li><a href="/2022/04/18/5188/">そろそろADEP契約更新ができなくなるかも知れない 〜カスタムAppへの移行を急ぐべき理由〜</a>
<li><a href="/2022/09/19/5528/">そろそろADEP契約更新ができなくなるかも知れない…その後(1)</a>, <a href="https://www.micss.biz/2022/10/03/5553/" rel="noopener" target="_blank">(2)</a></li>
<li><a href="/2023/05/15/5972/">実録！ADEPの更新を拒否されるまでの全て (1)</a>, <a href="https://www.micss.biz/2023/05/22/5983/" rel="noopener" target="_blank">(2)</a>, <a href="https://www.micss.biz/2023/05/29/6004/">(3)</a></li>
</ul>
<p>今後はどうなるか分かりませんが、長らく業務用iOSアプリの世界を見てきた弊社の見解は「<strong>新規受付の復活は考えにくいし、更新も徐々に厳しくなっていくと思われる」</strong>です。</p>
<p>ADEPの契約が既にできていて且つ2023年現在まだ更新ができている企業の場合、ADEPを使い続けるのが合理的な選択です。そうでない企業がApple審査を回避したいなら、後述の3つの選択肢から選ぶことになります。</p>
<p id="2">&nbsp;</p>
<h3>AdHoc</h3>
<p><a href="https://developer.apple.com/jp/programs/" rel="noopener" target="_blank">ADP(Apple Developer Program)</a>を契約して、その契約の配下で AdHoc 形式の配布を選択することにより Apple の審査を回避できます。(AdHocはADEPでも使えるが実質使い道がない)</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/06/20230612_adhoc.png" alt="" width="600" class="alignnone" /><br /><span class="caption">(<a href="/consultation/">研修</a>資料より)</span></p>
<p>AdHocはiOSアプリの歴史的経緯から、テスト用の配布手段と認識されていましたが実はそうではありません。ADP契約毎にデバイスごと100台までという上限に注意が必要ですが、本運用で使用しても実は問題ないのです。詳しくは以下をご覧下さい。</p>
<ul>
<li><a href="/2023/08/07/6203/">AdHocとは何か</a></li>
<li><a href="/2022/11/28/5695/">AdHoc配布はテスト用途以外に使用できるのか</a></li>
<li><a href="/2022/12/12/5731/">AdHocアプリを社外ユーザに配布できるのか</a></li>
</ul>
<p>AdHoc 形式では1年に一回の Provisioning Profile 更新が必要となります。しかしAdHocもMDMからの配布が(多くの場合)使えることも考えれば、ADEPでのInHouseアプリ運用と大差ありません。InHouseアプリと全く同様に、Appleのアプリ審査を受けることなく端末にアプリをインストールできますので、開発しようとしている業務用アプリの配信端末数が100台以下なら、積極的に検討できる手段です。</p>
<p id="3">&nbsp;</p>
<h3>TestFlight 内部テスト</h3>
<p><a href="https://developer.apple.com/jp/testflight/" rel="noopener" target="_blank">TestFlight</a> とは Apple が公式に提供しているテストツールです。元々はあるスタートアップが開発したものですが、買収に次ぐ買収で最終的に Apple が買い上げて洗練させ、公式テストツールとした経緯があります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/06/20230612_testflight.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(歴史に興味があれば <a href="https://en.wikipedia.org/wiki/TestFlight" rel="noopener" target="_blank">Wikipedia-TestFlight</a> を参照(英語))</span></p>
<p>関係者の間で評価する場合に使う<strong>内部テスト</strong>と、いわゆる公開ベータ版テストのように第三者の評価協力を募る場合に使う<strong>外部テスト</strong>と2種類の仕組みが用意されています。App Store Connect からアプリをTestFlight向けに登録し、本審査前とは別のテスト用審査を受けることでテスト配信が可能となります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/06/20230612_flow_including_testflight.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(<a href="/consultation/">研修</a>資料より。InHouseの経験しかない場合、TestFlightの使い方が一番の難所。<a href="/consultation/">研修</a>ではテスト設計も解説している)</span></p>
<p>テストに参加するユーザはテスターと呼ばれ、テスター専用のTestFlight というアプリを介して AppStore 登録前のテストバージョンを受け取ってインストール・テスト・フィードバック送信が可能です。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/06/20230612_testandfeedback.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(<a href="/consultation/">研修</a>資料より)</span></p>
<p>この TestFlight を審査回避の手段として使うことができます。先に「本審査前に別のテスト用審査を受けると」と書きましたが、<strong>内部テスト用審査は事実上無審査</strong>だからです。アプリである ipa ファイルの正当性・妥当性のみチェックされます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/06/20230612_b2bios.jpg" alt="" width="240" class="alignnone" />&nbsp;→&nbsp;<img src="https://www.micss.biz/wp-content/uploads/2023/06/20230612_sampleapp.jpg" alt="" width="240" class="alignnone" /><br /><span class="caption">(実際にTestFligth内部テストで配信されたアプリと起動後の画面。起動後にlabelしかなくても審査は通る。本審査ではありえない)</span></p>
<p>この特性を利用することで、事実上の無審査アプリ配布が可能となります。もし作ろうとしている業務用iOSアプリが、実験的開発や評価検証用のPoCである場合は、TestFlight の内部テストを使うことも選択肢に入るでしょう。</p>
<p>ただしPoC を抜けた本番運用のフェーズでは、TestFlight を使い続けることができないことに注意すべきです(TestFlightはテスト用途専用)。とりあえずアプリを作ってみたい評価用プロジェクト向きの手法といえます。</p>
<p id="4">&nbsp;</p>
<h3>Webクリップ</h3>
<p>意外に盲点で余り知られていない手法です。通常、開発会社側にMDMと構成プロファイルの理解がなければ思いつかないアイディアだからですね。(そして開発会社の多くは残念ながらそれらを使う機会がほとんどありません)</p>
<ul>
<li><a href="/2021/10/04/4461/">Webクリップとは何か(1) -Webサイトのブックマークを配布する-</a></li>
<li><a href="/2021/10/18/4552/">Webクリップの作り方と各設定値を徹底解説 [前編] -Webクリップとは何か(2)-</a></li>
<li><a href="/2021/10/25/4678/">Webクリップの作り方と各設定値を徹底解説 [後編] -Webクリップとは何か(3)-</a></li>
</ul>
<p>WebのショートカットであるWebClipをMDMから配布すれば、事実上の審査不要・無制限配布可能なネイティブアプリ(擬似)を実現することができます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/06/20230612_webclip.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(<a href="/consultation/">研修</a>資料より)</span></p>
<p>特に iOS 16.4 で <a href="https://webkit.org/blog/13878/web-push-for-web-apps-on-ios-and-ipados/" rel="noopener" target="_blank">Web Push 通知に対応</a>した点は注目に値します。ネイティブアプリを開発する理由として頻繁に上がってくる Push 通知が、JavaScript だけで実現できるようになったのです。もし iOS16.4 以降を前提にできるなら、</p>
<p>「Push 通知を使いたいならネイティブアプリ開発が必要」</p>
<p>という常識(?)は今や非常識となり、時代遅れな認識です。開発しようとする業務用iOSアプリが、</p>
<ul>
<li>審査を回避したい事情があり、</li>
<li>Push通知ぐらいしかネイティブアプリ開発する理由が無く、</li>
<li>端末の原則オンラインが担保できるなら、</li>
</ul>
<p>WebClip + MDM の組み合わせ技は有力な選択肢になります。以下の投稿も合わせてご覧下さい。</p>
<ul>
<li><a href="/2022/01/10/4968/">業務用WebシステムのiOS用クライアントアプリ開発は本当に必要か？を考える (前編)</a>, <a href="https://www.micss.biz/2022/01/24/5011/" rel="noopener" target="_blank">(後編)</a></li>
</ul>
<p>読者がもしネイティブは無理だがモダンな Web システム開発は可能な開発会社だという場合、WebClip は顧客への提案に使える新たなツールとなります。「Web技術だけでインストールから起動からユーザ体験までほぼアプリっぽいことができますよ」と言えるのです。これを機会に MDM + WebClip のあわせ技を学習することをお勧めします。</p>
<p>&nbsp;</p>
<p>以上、Appleの審査を回避する手段を4種類紹介しました。諸事情や諸条件によって採れる選択肢は変わってきますが、すべての選択肢を知っておくことは有用でしょう。本投稿が、読者の関わるアプリ開発プロジェクトの開発方針決定に役立てば幸いです。</p>
]]></content:encoded>
			</item>
		<item>
		<title>ipaファイルをiOS端末にインストールする方法 全8種</title>
		<link>https://www.micss.biz/2023/02/06/5824/</link>
		<pubDate>Sun, 05 Feb 2023 22:00:30 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[AdHoc]]></category>
		<category><![CDATA[Apple Configurator]]></category>
		<category><![CDATA[MDM]]></category>

		<guid isPermaLink="false">https://www.micss.biz/?p=5824</guid>
		<description><![CDATA[InHouse や AdHoc の形式で署名した業務用のiOSアプリは .ipa ファイルとして出力され、色んな方法で端末にインストールすることになります。 (Xcodeから.ipaを生成する画面。種類を選び正しく署名が [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>InHouse や AdHoc の形式で署名した業務用のiOSアプリは .ipa ファイルとして出力され、色んな方法で端末にインストールすることになります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_distributeipa.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(Xcodeから.ipaを生成する画面。種類を選び正しく署名ができれば生成に成功する)</span></p>
<p>本稿では、主要な方法からマイナーな方法まで、.ipa ファイルを端末にインストールする方法を全8種類ご紹介します。詳細を記した投稿へのリンクも載せていますので併せてご覧下さい。</p>
<p>まずは最初に一覧です。</p>
<table class="table">
<thead>
<tr>
<th>方法</th>
<th>無線/有線</th>
<th>有償/無償</th>
<th>環境条件</th>
</tr>
</thead>
<tbody>
<tr>
<th style="vertical-align:middle;"><a href="#mdm">MDM</a></th>
<td>無線</td>
<td>有償</td>
<td>MDMの契約<br />端末オンライン</td>
</tr>
<tr>
<th><a href="#ac">Apple Configurator</a></th>
<td>有線</td>
<td>無償</td>
<td>Mac</td>
</tr>
<tr>
<th style="vertical-align:middle;"><a href="#ota">OTA</a></th>
<td>有線</td>
<td>構築方法による</td>
<td>Webサーバ(https)<br />有効な証明書</td>
</tr>
<tr>
<th><a href="#xcode">Xcode</a></th>
<td>有線</td>
<td>無償</td>
<td>Mac</td>
</tr>
<tr>
<th style="vertical-align:middle;"><a href="#cfgutil">cfgutil</a></th>
<td>有線</td>
<td>無償</td>
<td>Apple Configurator<br />ターミナル</td>
</tr>
<tr>
<th><a href="#airdrop">AirDrop</a></th>
<td>無線</td>
<td>無償</td>
<td>Mac</td>
</tr>
<tr>
<th><a href="#finder">Finder</a></th>
<td>有線</td>
<td>無償</td>
<td>Mac</td>
</tr>
<tr>
<th><a href="#itunes">iTunes</a></th>
<td>有線</td>
<td>無償</td>
<td>Windows</td>
</tr>
</tbody>
</table>
<p>以下で順に見ていきます。</p>
<p id="mdm">&nbsp;</p>
<h3>MDM</h3>
<p>業務用iOSアプリの .ipa ファイルを語る場合、真っ先にあがるのがMDMを使ったインストールです。端末を集中管理して、情シス部門等の管理部門側からアプリのインストールや削除をコントロールしたい場合に向いています。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_uploading_ipa.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(MDMに.ipaファイルを登録する画面。このあと端末を紐付けるとインストールされる)</span></p>
<p>MDMサービス上にアップロードした .ipa ファイルは、複数端末に一斉インストールすることができます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_distribute_ipa.jpg" alt="" width="600" class="alignnone" /></p>
<p>厳密には、MDMから端末に .ipa ファイルのパス情報(マニフェスト)が送られ、iOS端末が当該 .ipa ファイルをダウンロード&#038;インストールする流れとなります。MDMがipaファイルを直接送りつけるわけではないことに注意して下さい。</p>
<p>対象となる端末が監視モードの場合は、ユーザの手元端末操作が不要となり、強制的に .ipa ファイルをインストールさせることができます(サイレントインストール)。これはMDMを選択する大きなメリットの一つと言えるでしょう。MDMについては以下をご覧下さい。</p>
<ul>
<li><a href="/2020/01/27/1164/">MDMとは何か 〜今さら聞けないMDMの基礎〜</a></li>
</ul>
<p>またMDMサービスによっては、InHouse に限らず AdHoc の .ipa ファイルも登録できる場合があります。以下を参考にして下さい。</p>
<ul>
<li><a href="/2023/01/23/5809/">MDMではInHouseアプリだけでなくAdHocアプリも配布できる</a></li>
</ul>
<p id="ac">&nbsp;</p>
<h3>Apple Configurator (Mac)</h3>
<p>MacとiOS端末を有線接続してインストールする方法です。端末を都度回収して保守するとか、管理部門やアプリ開発会社の担当者が現地に赴いてメンテする運用で向いています。</p>
<p>Apple Configurator は<strong>有線版MDM</strong>とでも言うべきMac用端末管理アプリケーションで、.ipaファイルのインストール以外にも色んな事ができます。残念ながらWindows用はありません。詳しくは以下を参考にして下さい。</p>
<ul>
<li><a href="/2020/05/07/1576/">Apple Configurator とは</a></li>
</ul>
<p>Apple Configurator は、大量の端末を集中管理するのには向いてませんが、Macに端末をUSBで繋いで .ipa ファイルをドラッグ&#038;ドロップすれば即インストールを完了できるというお手軽さがあります。</p>
<p>.ipa ファイルのインストールを含む一連の定型作業を自動化できるブループリントという、気の利いた機能も備わっています。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_ac_blueprints.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(Apple Configurator の操作マクロのようなものを作り、端末に適用できる)</span></p>
<p>もし、Apple Configurator 以外の他のアプリケーションや社内システムとの連携などを含んだ自動化をしたい場合、後述の <a href="#cfgutil">cfgutil</a> がお勧めです。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_mdm-ac.jpg" alt="" width="600" class="alignnone" /></p>
<p>MDM と Apple Configurator はどちらを使うべきか…と排他的に考えるものではなく、安定運用時はMDM、導入初期や検証・障害対応時は Apple Configurator、という合わせ技がお勧めです。</p>
<p id="ota">&nbsp;</p>
<h3>OTA</h3>
<p>自社内Webサーバに .ipa ファイルを置き、iOS端末の Safari から URL アクセスしてインストールして貰う方法です。従業員等のユーザに端末から直接インストール操作をさせたいような運用に向いています。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_ota.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(研修プログラムの資料から)</span></p>
<p>分かり易く表現すると、OTAの仕組みを使えば<strong>自社内でオレオレAppStoreを構築</strong>できます。Webサーバは自社に都合の良い形で構築することができ、Xcode が生成するマニフェストファイルと一緒に .ipa をアップロードするだけ…と手順は非常に簡単です。</p>
<p>OTAについては詳しくは以下の投稿を参考にして下さい。</p>
<ul>
<li><a href="/2022/12/26/5748/">OTA(Over The Air)とは何か</a></li>
</ul>
<p>MDMのように、自動再インストールや自動アップデートのような気の利いた管理系の仕組みは備えていません。それらの機能が必要な場合は、MDMの導入を検討して下さい。</p>
<p id="xcode">&nbsp;</p>
<h3>Xcode (Mac)</h3>
<p>余りないと思いますが、Apple Configurator はインストールがされていないが Xcode はインストールされているというMacから .ipa ファイルをインストールしたい場合に役立つ方法です。</p>
<p>Xcode内で使える Devices and Simulators から .ipa ファイルをインストールできます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_xcode.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(Xcodeのメニューから [Window] → [Device and Settings] で表示される画面)</span></p>
<p>一覧からデバイスを選び、.ipa ファイルを INSATALLED APPS の欄にドラッグ&#038;ドロップするだけです。AppID (Identifier)や詳細なバージョン番号が表示され、.ipa ファイルに関しては Apple Configurator より詳しい情報を得ることができます。</p>
<p id="cfgutil">&nbsp;</p>
<h3>cfgutil (Mac)</h3>
<p>Apple Configrator に付属しているコマンドラインツールを使う方法です。UIを触るまでもない場合や、自社内で自動化スクリプト等を開発していて、一連の自動化処理の中に .ipa インストール処理を組み込みたいような場合に有効です。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_cfgutil.jpg" alt="" width="600" class="alignnone" /></p>
<p>シェル操作やサーバ管理に慣れている方でないと使いこなせませんが、使いこなすと非常に便利です。cfgutil については以下をご覧下さい</p>
<ul>
<li><a href="/2021/10/11/4488/">Apple Configurator 付属のコマンドラインツール cfgutil の使い方</a></li>
</ul>
<p id="airdrop">&nbsp;</p>
<h3>AirDrop (Mac)</h3>
<p><a href="https://support.apple.com/ja-jp/HT203106" rel="noopener" target="_blank">AirDrop</a> は、Bluetooth で互いを認識・識別し、WiFi を使ってデータを送受信するmacOS / iOS に標準搭載されている無線データ転送技術です。この AirDrop を .ipa ファイルのインストールに利用することができます。</p>
<p>Apple Configurator も Xcode もインストールしていないMacから、手元のiOS端末に .ipa ファイルをインストールしたい場合に向いています。追加のソフトウェアや、端末との有線接続も不要なので、最も手軽なインストール方法と言えます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_airdrop.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(OS標準の機能。サイドバーで AirDrop を選び、インストールしたいデバイスのアイコンに向けて .ipa ファイルをドラッグ&#038;ドロップ)</span></p>
<p>上図のようにFinder のサイドバーからAirDropする方法と、.ipa ファイルを直接右クリックして AirDrop する方法とがあります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_share.jpg" alt="" width="600" class="alignnone" /></p>
<p>詳しくは以下をご覧下さい。</p>
<ul>
<li><a href="/2021/02/08/3075/">ADEPのInHouseなipaファイルをmacOS標準機能を使ってインストールする</a></li>
</ul>
<p id="finder">&nbsp;</p>
<h3>Finder(Mac)</h3>
<p>macOSに標準搭載されている Finder を使う方法です。Apple Configurator や Xcode など、管理系・開発系の macOS 用ソフトウェアを一切インストールしていない Mac で .ipa をインストールしたい場合に向いています。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_finder.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(Macに有線接続したiPhoneをFinderで選択し、.ipaファイルを直接ドラッグ&#038;ドロップ)</span></p>
<p>前記の AirDrop を使う方法と違い、無線ではなく有線になってしまう点には注意が必要です。</p>
<p>ただ、後述の Windows で iTunes を使って .ipa をインストールするのと同じようなことを Mac でやる方法なので、Mac を全く知らない方に案内するには最適かも知れません。</p>
<p id="itunes">&nbsp;</p>
<h3>iTunes(Windows)</h3>
<p>Windows 環境で使える唯一の方法です。前述の MDM も OTA もなく、Windows PC しかない環境で .ipa ファイルをインストールする場合に役に立ちます。</p>
<p>WindowsにUSBでiOS端末を接続し、iTunesのサイドバーのデバイス一覧に .ipa ファイルをドラッグ&#038;ドロップするとインストールできます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/02/20230206_itunes.jpg" alt="" width="600" class="alignnone" /></p>
<p>ただ、この方法はやむを得ず使う…程度の臨時的手法です。常用は推奨されず、前述の<a href="#mdm">MDM</a>や<a href="#ota">OTA</a>、または<a href="#ac">Apple Configurator</a>等のMacを使った運用体制を構築することをお勧めします。iOS端末を業務活用するなら Windows に縛られるべきではありません。</p>
<p>かつては、Apple Configurator の前身としてiPhone構成ユーティリティなるソフトウェアが Win/Mac の両方で提供されていました。WIndows でも iTunes を使わずに .ipa ファイルをインストールすることができて便利だったのですが、2023年現在、Windows用iPhone構成ユーティリティは公式には存在しないことになっています。ダウンロードできる野良サイトもありますが、弊社では利用を推奨していません。</p>
<p>&nbsp;</p>
<p>以上、InHouse や AdHoc の .ipa ファイルを端末にインストールする方法を全8種類ご紹介しました。</p>
<p>業務用iOSアプリの運用現場では <strong>MDM と Apple Configurator、場合によってはOTA</strong>。この3つでほぼほぼ事足りますが、手段を一通り知っておくといざというときに役立ちます。是非頭の片隅にとどめておいて下さい。</p>
]]></content:encoded>
			</item>
		<item>
		<title>MDMではInHouseアプリだけでなくAdHocアプリも配布できる</title>
		<link>https://www.micss.biz/2023/01/23/5809/</link>
		<pubDate>Sun, 22 Jan 2023 22:00:13 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[AdHoc]]></category>
		<category><![CDATA[MDM]]></category>

		<guid isPermaLink="false">https://www.micss.biz/?p=5809</guid>
		<description><![CDATA[AdHocアプリの配布方法は大きく以下の2種類があります。 Apple Configuratorを使う OTAを使う 前者についてはApple Configurator とはの投稿を、後者についてはOTAとは何かの投稿を [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>AdHocアプリの配布方法は大きく以下の2種類があります。</p>
<ul>
<li>Apple Configuratorを使う</li>
<li>OTAを使う</li>
</ul>
<p>前者については<a href="/2020/05/07/1576/">Apple Configurator とは</a>の投稿を、後者については<a href="/2022/12/26/5748/" rel="noopener" target="_blank">OTAとは何か</a>の投稿をそれぞれ参考にして下さい。AdHocアプリはこのどちらかで配布することが多いと思いますが、実はMDMでも配布できることは余り知られていません。</p>
<p>本稿では、MDMを使ったAdHocアプリ配布について紹介します。</p>
<p>&nbsp;</p>
<h3>MDMにAdHocな .ipaファイルも登録できる</h3>
<p>MDMに .ipa ファイルを登録して端末へ配布する、この文脈では通常 ADEPによるInHouseアプリを想定していることが多いです。業務用アプリといえば、ADEPでの InHouse な .ipa であることが大半だからですね。</p>
<p>しかし、MDMに登録される .ipa ファイルは、InHouse だろうが AdHoc だろうが中身に本質的な違いはなく、あると言えば Provisioning Profile 内の記述が一部異なる…ぐらいの差しかありません。(どう異なるかはまた別の投稿に記します)</p>
<p>MDMプロトコルのドキュメントにもその差を問題にしている記述は見当たらず、MDMサービスが .ipa ファイルの種類を識別する理由は特にありません。そういうわけで、MDM サービスによっては InHouse アプリと同じように AdHoc アプリの .ipa ファイルも登録できる場合があります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/01/20230123_bizmobilego_newapp.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(弊社がよく使うMDM <a href="https://www.bizmobile.co.jp/" rel="noopener" target="_blank">BizMobile Go!</a>のアプリ登録画面。InHouseを前提としているがAdHocの.ipaファイルも登録ができる)</span></p>
<p>.ipa ファイルを登録できればこっちのもの。InHouseと同様に、AdHocアプリをMDMで管理し配布することができるようになります。</p>
<p>&nbsp;</p>
<h3>AdHocなアプリをMDM配布できると何が嬉しいか</h3>
<p>ADEPの契約ができている(更新できている)企業に、AdHocを使うメリットはありません。100台の台数制限が必要で、事前にUDIDを取得する必要があるAdHocをわざわざ使う理由はないからです。せっかくADEP契約があるのですから、台数無制限に配布可能なInHouseを使ったほうが良いです。</p>
<p>では、AdHocはどのような企業にメリットがあるのでしょうか。</p>
<p>1つには、<strong>ADEPからADPへの移行を余儀なくされたMDM利用企業</strong>です。MDMを使ってInHouseアプリを配布していた筈ですから、代わりにADPのAdHocを使うことで従来の運用を継続できます。</p>
<ul>
<li>(1) ADPで配布用証明書を取得し、AdHoc 用の Provisioning Profile を作成する</li>
<li>(2) 当該 Provisioning Profile を使って署名する (従来のInHouseの代わりに)</li>
<li>(3) (2)でできた.ipaファイルを、これまで通りMDMに登録し配信する</li>
</ul>
<p>このように、署名時の Provisioning Profile (と対応する証明書・秘密鍵)を差し替えるだけで、従来と同じワークフローで運用できるわけです。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2023/01/20230123_adep_expired.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(ADEPの更新が拒否され期限切れした時の画面。こうなっても総悲観はまだ早い&#8230;かも知れない)</span></p>
<p>また更に、<strong>ADPで初めて Developer Program を契約する企業で業務用アプリを非公開かつ無審査で配布したい場合</strong>にも有用です。</p>
<p>現在ADP契約下でのアプリ配布では通常、AppStoreインフラを使う公開アプリ・非表示アプリ・非公開アプリ(カスタムApp)とすることを目指しますが AppStore を使う以上は Apple の審査を受ける必要があります。</p>
<p>しかし後述する制限が許容できるなら、AdHoc を使うことで Apple の審査を迂回できます。この際に、 MDM を使用すれば業務用アプリを遠隔で無審査に配布できますので非常に便利です。</p>
<p>このように、AdHocはADP契約を保有する企業にとって Apple の審査回避手段として機能します。</p>
<p>&nbsp;</p>
<h3>AdHocなアプリの注意点</h3>
<p>何の制限もなければ、それはADEPのInHouseと同義になってしまいます。無論、AdHocがInHouseの完璧な代替になるはずもなく、以下の制限と制約があります。</p>
<ul>
<li>アプリ動作可能端末は100台まで</li>
<li>UDIDを事前に登録する必要がある</li>
<li>用途は限られないが、配布可能対象は限られる</li>
<li>AdHoc用の Provisioning Profile は1年に1回更新の必要がある</li>
</ul>
<p>この条件に収まりうる業務用アプリなら、Appleの審査は不要でMDMから自由に配布ができるというわけです。3番目の項目については以下の投稿を参考にして下さい。</p>
<ul>
<li><a href="/2022/11/28/5695/">AdHoc配布はテスト用途以外に使用できるのか</a></li>
<li><a href="/2022/12/12/5731/">AdHocアプリを社外ユーザに配布できるのか</a></li>
</ul>
<p>また4番目の項目については、 以下情報が参考になりますので併せてご覧下さい。</p>
<ul>
<li><a href="/2022/09/05/5504/">ADEPのInHouseアプリは1年に1回必ずビルド・再署名しなければならないのは本当か？</a></li>
</ul>
<p>Provisioning Profile の更新は InHouse も AdHoc も仕組みが一緒であり、InHouseがそうであるようにAdHocもロジックに変化が無いなら毎年ビルド・署名する必要はありません。MDMから単体でAdHoc用の Provisioning Profile を配布するだけでokです。</p>
<p>&nbsp;</p>
<p>以上、AdHocをMDMで配布することについて紹介しました。Apple Configurator や OTA に加え第三の選択肢として、AdHoc + MDM での非公開アプリ運用も是非検討してみて下さい。</p>
]]></content:encoded>
			</item>
		<item>
		<title>OTA(Over The Air)とは何か</title>
		<link>https://www.micss.biz/2022/12/26/5748/</link>
		<pubDate>Sun, 25 Dec 2022 22:00:16 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[ADEP]]></category>
		<category><![CDATA[AdHoc]]></category>
		<category><![CDATA[ADP]]></category>

		<guid isPermaLink="false">https://www.micss.biz/?p=5748</guid>
		<description><![CDATA[業務用iOSアプリを端末にインストールして貰う方法は色々とあります。 各端末でAppStoreからインストールして貰う方法以外に、MDMを使って遠隔から一斉にインストールする方法、Macを使ってApple Configu [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>業務用iOSアプリを端末にインストールして貰う方法は色々とあります。</p>
<p>各端末でAppStoreからインストールして貰う方法以外に、MDMを使って遠隔から一斉にインストールする方法、Macを使ってApple Configurator で有線USB転送で地道にインストールする方法等々です。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_app-distributions.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(アプリを端末まで届ける方法は様々)</span></p>
<p>本稿では、まだ本サイトで過去に紹介できていない、<strong>OTA(Over The Air)</strong>という方法について紹介します(上図赤枠)。OTAを使うと、InHouseやAdHocのアプリ(.ipaファイル)を社内のイントラネットに置いて、<strong>ユーザにSafari経由でアプリインストールする手段を提供する</strong>ことができます。</p>
<p>&nbsp;</p>
<h3>OTAが使えるアプリの種類</h3>
<p>OTAは、AppStore向けの申請用ビルドを除く InHouse / AdHoc / Development の方式で使うことができます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_xcode-distribution-type.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(Xcode の Organizer から Distribution を行うときの画面。上図はInHouseを選んでいるところ)</span></p>
<p>もちろんそれぞれの署名に最適な秘密鍵や Provisioning Profile がビルド環境にインストールされていなければなりませんが、署名して .ipa ファイルさえ生成できれば、OTAからのインストール用に使うことができます。</p>
<p>&nbsp;</p>
<h3>OTAの特徴と動き</h3>
<p>OTAは、<strong>オレオレAppStore</strong>を社内に構築できるようなものと考えると分かり易いでしょう。ipa ファイルを一定のルールで社内サーバに配置しさえすれば、ユーザは自分の端末で社内サーバにアクセスするけでアプリをインストールできるからです。</p>
<p>ユーザからは具体的にはこんな感じに見えます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_otapage.jpg" alt="" width="320" class="alignnone" />&nbsp;→&nbsp;<img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_otaconfirm.jpg" alt="" width="320" class="alignnone" /><br /><span class="caption">(インストール用のページで専用ボタンをタップするとインストールされる。成功するとHOME画面にアプリが現れる)</span></p>
<p>ユーザは指定のURLにSafariでアクセスしてボタン(リンク)タップするだけです。まさにオレオレAppStore、これを自社内サーバに好きなように構築できる技術がOTAというわけです。</p>
<p>注意しなければならないのは、<strong>OTAを使ったからと言ってどんなアプリも任意端末にインストールできるわけではない</strong>点です。OTAによるインストール可否は、サーバに設置する .ipa ファイルがどんな Provisioning Profile で署名されたかに依存します。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_otafailure.jpg" alt="" width="320" class="alignnone" /><br /><span class="caption">(AdHocの場合、OTAインストールを試みても端末側のUDIDが未登録なら失敗する。タップしても起動しない)</span></p>
<p>InHouse の Provisioning Profile ならその .ipa ファイルは無制限に任意の端末にインストールができる一方で、AdHoc の Provisioning Profile で署名された .ipa ファイルの場合はあらかじめ登録されたUDIDを持った端末にしかインストールできません。</p>
<p>&nbsp;</p>
<h3>OTAに必要なもの</h3>
<p>OTAは、任意のWebサーバに .ipaファイルを置いて、ユーザにSafari経由でアプリをインストールして貰う方法です。これを機能させるために必要なものが幾つかあります。</p>
<ul>
<li>(A) Webサーバ</li>
<li>(B) マニフェストファイル</li>
<li>(C) HTMLファイル + α</li>
</ul>
<p>これらが以下のような構成で機能するようになります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_otaarchitecture.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(研修プログラムの資料から。サーバを用意し、署名生成した.ipaを含む必要なファイルをアップロードする)</span></p>
<p>順に見ていきましょう。</p>
<h4>(A) Webサーバ</h4>
<p>有効な証明書が設置された https 応答可能なWebサーバが必要となります。それ以外の条件はありません。Apache, NGiNX, IIS…どんなWebサーバでも構いませんし、AWS上か自社データセンター内か等インフラが何かは全く関係がありません。</p>
<ul>
<li>https (443/TCP) の応答</li>
<li>有効な証明書</li>
</ul>
<p>Webサーバ側に必要なのはこの2点です。オレオレ証明書で https 応答するようにした場合、OTAによるアプリインストールは失敗しますので注意が必要です。</p>
<h4>(B) マニフェストファイル</h4>
<p>アプリの情報が記載されたplist形式のXMLファイルです。昨今のXcodeでは、.ipaファイルの生成時に一緒に作ってくれる機能が備わっています。</p>
<p>OrganizerからDistributionする時に形式を選んだ後、下図のように「Include manifest for over-the-air installation」のチェックをONにして [Next] をクリックします。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_xcode-distribution-option.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(一番下のチェックボックス。デフォルトではOFFになっている)</span></p>
<p>次に、マニフェストファイルに必要な .ipa ファイルの設置予定場所を示すURLや、アプリを示す画像ファイルのURLを指定します。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_xcode-distribution-url.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(生成されるマニフェストは単なるXMLファイルなので、後から手動で編集する前提で適当な指定をしてもok)</span></p>
<p>[Next]をクリックし署名に成功すると、XcodeのOrganizerは以下のようなファイル一式を出力してくれます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_manifest.jpg" alt="" width="600" class="alignnone" /></p>
<p>この中の manifest.plist というファイルがマニフェストファイルです。左下の .ipa ファイルは言わずもがなiOSアプリですね。それ以外のファイルは署名時の情報が記載されたもので、OTAには不要です。</p>
<p>なおマニフェストファイル作成時に指定したURLのうち、Display Image URL と Full Size Image URL が示す画像ファイルはサーバ上に実在しなくても問題ありません。</p>
<h4>(C) HTMLファイル+α</h4>
<p>実際にユーザが Safari からアクセスすることになるhtmlファイルです。htmlの記述方法に特に制約はなく、OTAに関するルールは、</p>
<ul>
<li>アプリインストール用のボタンを &lt;a&gt; タグで作成</li>
<li>href属性に特別なURLスキーマでマニフェストに関する記述</li>
</ul>
<p>という点のみです。必要最低限のhtmlを記述すると以下のようになります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_otahtml.jpg" alt="" width="600" class="alignnone" /></p>
<p>見慣れた https:// で始まる表記ではなく、itms-services:// という特殊表記(スキーマ)であることに注意が必要です。マニフェストURLの部分を、URLエンコードしたマニフェストへのURL文字列に置き換えます。</p>
<p>それ以外は自由です。上記のような最小構成のhtmlが1ファイルでもokですし、CSSやjsを駆使してリッチなページにしても良いでしょう。あるいは、PHPやDBを使って社内独自のOTAシステムを構築しても構いません。(弊社では独自OTAシステムを開発していました)</p>
<p>&nbsp;</p>
<h3>OTAでインストールされるまで</h3>
<p>ここまで紹介してきたことをふまえ、OTAでアプリがインストールされるまでの流れを整理します。OTA環境のWebサーバは構築されている前提です。</p>
<ul>
<li>(1) Xcode の Organizer からマニフェストファイル付きで .ipa を生成する</li>
<li>(2) OTA環境に、(B)のマニフェストファイルと .ipa ファイルをアップロードする</li>
<li>(3) OTA環境に、(C)のHTML+αをアップロードする</li>
<li>(4) (3)のHTMLを指し示すURLをユーザに伝える</li>
<li>(5) ユーザはSafariで(4)のURLを開きリンクタップでインストールする</li>
</ul>
<p>運用フェーズではこれをひたすら繰り返す格好になります。OTAでインストールされたアプリのアップデートは自動で行われませんので、この (1)〜(5) をアップデートの度に実施する必要があります。</p>
<p>&nbsp;</p>
<h3>OTA環境のWebサーバを作るのが難しい場合</h3>
<p>何らかの事情でOTA環境用のWebサーバを用意するのが難しい場合、OTA環境を提供してくれるSaaS型のサービスを契約することを検討しても良いでしょう。</p>
<p>国産であれば <a href="https://deploygate.com/" rel="noopener" target="_blank">deploygate</a> が有名です。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_deploygate.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(2012年にミクシィの新事業として同社内に誕生。2015年に事業部門ごとスピンアウトした)</span></p>
<p>海外製だと <a href="https://www.diawi.com/" rel="noopener" target="_blank">diawi</a> もよく知られています。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221226_diawi.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(手軽にipaファイルをアップロード・共有できる)</span></p>
<p>なお弊社は両サービス共に使用したことも提案した経験もありません。この他にもあるかも知れませんので「OTA」でググってみるのも良いでしょう。ただ、OTA用のWebサーバは上述の通り条件が非常に少ないため、可能であればやはり自社構築するか、既存のhttps対応済み社内サーバを間借りするのがお勧めです。</p>
<p>&nbsp;</p>
<p>以上、OTA(Over The Air)によるアプリのインストールについて紹介しました。更に細かな情報については<a href="https://support.apple.com/ja-jp/guide/deployment/depce7cefc4d/1/web/1.0" rel="noopener" target="_blank">Appleの公式情報</a>もありますので参考にして下さい。</p>
]]></content:encoded>
			</item>
		<item>
		<title>AdHocアプリを社外ユーザに配布できるのか</title>
		<link>https://www.micss.biz/2022/12/12/5731/</link>
		<pubDate>Sun, 11 Dec 2022 22:00:59 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[AdHoc]]></category>
		<category><![CDATA[ADP]]></category>

		<guid isPermaLink="false">https://www.micss.biz/?p=5731</guid>
		<description><![CDATA[前回の投稿で AdHoc がテスト用途に限らず利用できることを紹介しました。 ADEPからADPへと誘導しているAppleの言い分は「ADEPでの台数無制限な無審査配布はもう許さないけど、ADPのAdHocなら100台限 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="/2022/11/28/5695/">前回の投稿</a>で AdHoc がテスト用途に限らず利用できることを紹介しました。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221212_adhoc.jpg" alt="" width="600" class="alignnone" /></p>
<p>ADEPからADPへと誘導しているAppleの言い分は「ADEPでの台数無制限な無審査配布はもう許さないけど、ADPのAdHocなら100台限定で審査なしの配布ができるよ」ということです。</p>
<p>上限があっても無審査で配布できるのが都合が良い場合もあることでしょう。ただ、AdHoc配布を活用する場合に注意しておきたいのが<strong>配布可能範囲</strong>。ADEPのInHouseと同様に自社従業員だけなのでしょうか、社外の人に配布するのはどうでしょうか？</p>
<p>本稿では、<a href="/2022/11/28/5695/">前回投稿</a>に続きADPの契約書を読み解いて「ADPでのAdHoc配布は誰に行えるのか？」について紹介します。</p>
<p>&nbsp;</p>
<h3>契約書では AdHoc の配布範囲について一条項割いている</h3>
<p><a href="https://developer.apple.com/jp/support/terms/" rel="noopener" target="_blank">Apple Developer のサイト</a>にはADPの契約書が公開されています。PDF形式で誰でもダウンロードすることができます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/12/20221212_adp_license-agreement.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(日英の両方で提供されているがオリジナルの英文契約書に目を通すことが推奨される)</span></p>
<p>この利用許諾契約の <strong>7.3 Distribution on Registered Devices (Ad Hoc Distribution)</strong> にAdHocでの配布可能範囲について詳細が記されています。以下に同条項の最初の一文を引用します。</p>
<blockquote>
<p style="margin-bottom:0px;"><strong>7.3 Distribution on Registered Devices (Ad Hoc Distribution)</strong><br />You may also distribute Your Applications for iOS, watchOS, iPadOS, and tvOS to individuals within Your company, organization, educational institution, group, or who are otherwise affiliated with You for use on a limited number of Registered Devices (as specified in the Program web portal), if Your Application has been digitally signed using Your Apple Certificate as described in this Agreement.</p>
</blockquote>
<p>同条項の最初に配布対象が列挙されていますね。英文を分解して読み解くと、AdHoc アプリを distribute(配布)できる対象は Your (ADP契約主体の)、</p>
<ul>
<li>company (会社)</li>
<li>organization (組織)</li>
<li>educational institution (教育機関)</li>
<li>group (グループ)</li>
</ul>
<p>の individuals within (内部の個人)、または</p>
<ul>
<li>who are otherwise affiliated with You</li>
</ul>
<p>であると明記されています。列挙された前者4項は明らかにADP契約主体に所属する従業員やスタッフを指していると解釈できますが、後者は少し広い範囲で解釈ができそうです。affiliated with をどう解釈するか、これによって配布可能先が変わってきそうですね。</p>
<p>&nbsp;</p>
<h3>affiliated with を読み解く</h3>
<p>affiliated を<a href="https://www.taishukan.co.jp/book/b197539.html" rel="noopener" target="_blank">英和辞典(ジーニアス英和辞典)</a>で調べると以下のように定義されています。</p>
<blockquote>
<p style="margin-bottom:0px;">[形] 提携関係にある；系列の、付属の、加盟した</p>
</blockquote>
<p>また著名な英英辞典(<a href="https://www.kirihara.co.jp/product/detail/001888/" rel="noopener" target="_blank">Collins コウビルド 英英辞典</a>)によると affiliated は以下のように解説されています。</p>
<blockquote>
<p style="margin-bottom:0px;">[ADJECTIVE] If an organization is affiliated with another larger organization, it is officially connected with the larger organization or is a member of it.</p>
</blockquote>
<p>また利用許諾契約書の日本語版7.3の対応箇所では以下のように記されています。</p>
<blockquote>
<p style="margin-bottom:0px;">本契約の規定に従い、デベロッパは、iOS、watchOS、iPadOS、およびtvOS向けのデベロッパのアプリケーション を、デベロッパの社内、デベロッパの組織内、教育機関内、グループ内の個人、またはデベロッパと提携関係にある者に 対して、限定数量の登録デバイス(プログラムウェブポータルで指定)で使用するために配布することができるものとし ます。</p>
</blockquote>
<p>この3つの情報から弊社では who are otherwise affiliated with You を、<strong>ADP主体のグループ企業や資本関係を有する企業、または販売契約等に基づく販売網構成企業</strong>と解釈しています。</p>
<p>これが狭すぎる解釈か広すぎる解釈かは企業によって見解が分かれるかも知れません。間違いなく言えるのは不特定な第三者は含まれないということです。なお、7.3条の続く文章にはこんな記載もあります。</p>
<blockquote>
<p style="margin-bottom:0px;">You also agree to be solely responsible for determining which individuals within Your company, organization, educational institution or affiliated group should have access to and use of Your Applications and Registered Devices, and for managing such Registered Devices.</p>
</blockquote>
<p>意訳すると、誰が配布先に該当するのかの判断は自己責任ですよ、というわけです。</p>
<p>&nbsp;</p>
<p>以上、AdHoc配布が可能な範囲について言及しているADP利用許諾書の7.3条を紹介しました。</p>
<p>ザックリとは、身内や関係者と言えるのならAdHoc配布先としても良いのではないか、という気もします。ただ安易に判断せず、AdHoc配布を実際に行おうとするエンドユーザ企業それぞれが契約書をよく読んで判断すべきでしょう。本稿が読み解く参考になれば幸いです。</p>
]]></content:encoded>
			</item>
		<item>
		<title>AdHoc配布はテスト用途以外に使用できるのか</title>
		<link>https://www.micss.biz/2022/11/28/5695/</link>
		<pubDate>Mon, 28 Nov 2022 05:36:55 +0000</pubDate>
		<dc:creator><![CDATA[OishiYuichi]]></dc:creator>
				<category><![CDATA[AdHoc]]></category>
		<category><![CDATA[ADP]]></category>

		<guid isPermaLink="false">https://www.micss.biz/?p=5695</guid>
		<description><![CDATA[Appleの審査を受けずにアプリを配布する方法として AdHoc という方法があります。 (業務用iOSアプリ開発支援プログラムの資料より) 配布可能な端末数に上限があり、しかも対象端末のUDIDを事前に調べる必要があっ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Appleの審査を受けずにアプリを配布する方法として AdHoc という方法があります。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/11/20221128_adhoc.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(<a href="/consultation/">業務用iOSアプリ開発支援プログラム</a>の資料より)</span></p>
<p>配布可能な端末数に上限があり、しかも対象端末のUDIDを事前に調べる必要があって非常に面倒ですが、iOSアプリ黎明期(2010年頃まで)には関係者にテストして貰う手段としてよく活用されました。</p>
<p>それが理由かどうか分かりませんが、時折、<strong>AdHocはテスト目的の配布に限られる</strong>と理解されていることがある印象です。本稿では、実際のところどうなのか、契約書やAppleの公式ページから読み解いてみたいと思います。</p>
<p>&nbsp;</p>
<h3>契約書ではどのように記されているのか</h3>
<p>ADPもADEPも <a href="https://developer.apple.com/jp/support/terms/" rel="noopener" target="_blank">Apple Developer 内の専用ページ</a>に使用許諾契約が公開されています。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/11/20221128_appledeveloper_agreements.jpg" alt="" width="600" class="alignnone" /><br /><span class="caption">(ADPやADEPの契約をしていなくても契約書の全文は誰でも見ることができる)</span></p>
<p>プログラム使用許諾契約の欄の一番上がADPの契約書です。<a href="https://developer.apple.com/support/downloads/terms/apple-developer-program/Apple-Developer-Program-License-Agreement-20220606-English.pdf" rel="noopener" target="_blank">契約を確認する(英語)</a>のリンクから原文PDFをダウンロードすることができます。2022年12月現在、2022年6月のWWDCの時期に更新されたバージョンが最新となっています。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/11/20221128_adp_license-agreement.jpg" alt="" width="400" class="alignnone" /></p>
<p>このPDFを「Ad Hoc」で検索すると5件ほどヒットします。言及されているのは以下のページ。原文PDFを見ながらご覧下さい。</p>
<table class="table">
<thead>
<tr>
<th style="width:80px;">ページ数</th>
<th>AdHoc配布に関する言及</th>
</tr>
</thead>
<tbody>
<tr>
<th>10</th>
<td>AdHoc配布可能な上限を定める権限をAppleが留保しているという記載</td>
</tr>
<tr>
<th>16</th>
<td>禁止事項の1つとしてAdHoc配布を阻害することをあげている。またAdHoc配布がiOSアプリ配布の一形式であることに言及</td>
</tr>
<tr>
<th>17</th>
<td>AdHoc配布を含む全配布形式で配布されるアプリが3.3条を満たすことを求めている。3.3条ではUIのあり方や、各SDKの使い方について細かくルールが記されている</td>
</tr>
<tr>
<th>39</th>
<td>AdHoc配布についての独立した項。だが、配布可能範囲についてのみ規定</td>
</tr>
<tr>
<th>41</th>
<td>本契約書に記載されたAdHocを含む配布方法以外は、原則認められないことを説明(つまり、サイドローディングの禁止)</td>
</tr>
</tbody>
</table>
<p>できることなら原文(英語)を読むべきですが、<a href="https://developer.apple.com/support/downloads/terms/apple-developer-program/Apple-Developer-Program-License-Agreement-20220606-Japanese.pdf" rel="noopener" target="_blank">日本語版</a>も用意されていますので読み解く参考にすると良いでしょう。日本語ではAdHocが「特別配布」と訳されています。</p>
<p>契約書を実際に読むと分かりますが、実はどこにも<strong>AdHoc配布がテストに限定されるべきという主旨の記述はありません</strong>。どちらかというと、テスト用途の配布についてはTestFlightが受け持つ記述になっています。<br />
&nbsp;</p>
<h3>Appleはどんな場合に使えると言っているのか</h3>
<p>業務用アプリの配布形式について Apple の考え方を知るのに役立つのが <a href="https://developer.apple.com/jp/programs/enterprise/" rel="noopener" target="_blank">ADEP の公式</a>ページです。このページの末尾で、アプリのタイプ毎に、どんな配信方法が使用できるのか教えてくれます。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/11/20221128_typeofdistribution.jpg" alt="" width="400" class="alignnone" /><br /><span class="caption">(業務用アプリのユースケースには大きく3種類ある)</span></p>
<p>業務用アプリには、このように3つの選択肢が用意されていますが、それぞれどんなことが書いているか見てみましょう。AdHocについての言及はあるでしょうか。</p>
<h4>一般向けのApp</h4>
<p>一般消費者向けアプリとして公開することを目指す場合。こんなふうに記述されています。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/11/20221128_appstore.jpg" alt="" width="600" class="alignnone" /></p>
<p>AdHoc配信が採用できることが分かりますね。テスト用途であることの注意書きもありません。</p>
<h4>特定の顧客むけのカスタムApp</h4>
<p>いわゆる自社アプリのカスタマイズバージョンを他社に提供する場合です。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/11/20221128_customb2b.jpg" alt="" width="600" class="alignnone" /></p>
<p>ここにもAdHoc配信が使えるという記述があり、テスト用途の縛りを感じさせる記述は見られません</p>
<h4>自分の組織内で使用する独自App</h4>
<p>ADEPのInHouseアプリが担ってきた位置づけのアプリです。</p>
<p><img src="https://www.micss.biz/wp-content/uploads/2022/11/20221128_customapp.jpg" alt="" width="600" class="alignnone" /></p>
<p>ここでもAdHoc配信が使えると書かれています。前後の文章を見てもやはりテスト用途に限るものでもなさそうです。</p>
<p>&nbsp;</p>
<h3>結論</h3>
<p>AdHoc配布がテスト用途以外でも使えるのかどうか、契約書やAppleのサイトの情報を紹介しましたが、どのように結論づけることができるでしょうか。</p>
<p>現時点での弊社見解ですが、Appleとの契約書に用途を限定した記載が明記されていないため、またADEPに変わる配信手段を案内するページにも特段用途制約の記述が見られないため、AdHoc配布をテスト用途に限る必要はなく、その不便(UDID登録済み端末に限り100台上限)を許容できるなら、Appleの審査を避けることのできるアプリ配布手段として採用できると言って良さそうです。</p>
<p>この見解を踏まえてですが、ADP契約をしている弊社顧客の中には、</p>
<ul>
<li>100台に満たない規模で使用する業務用アプリを AdHoc 配布で運用</li>
<li>数百台規模に配布する業務アプリはカスタムApp配信で運用</li>
</ul>
<p>というあわせ技を採用頂いている企業様もいらっしゃいます。ADEPを持たない企業が「全業務アプリをAppleの審査にかけなければならない&#8230;」わけではなく、制約はあるものの審査なしの非公開配布ができるということですね。</p>
<p>&nbsp;</p>
<p>以上、AdHoc配布するアプリの用途について紹介しました。ただ繰り返しますが弊社見解ですので、AdHoc配布を利用される各社におかれては、念の為に契約書を法務部門にて精査をされることをお勧めします。</p>
<p>また、<strong>社外の端末・ユーザにAdHoc配布しても良いのかどうか</strong>は、用途とは別次元の問題になってきますので注意して下さい。これについては次の投稿で解説したいと思います。</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
