2022.5.2
業務用端末にインストールされているアプリのBundleIDを調べる方法
iOSは各アプリを BundleID と呼ばれる識別子で区別しています。
業務用iOS関連の作業では、ときおりiOS端末にインストールされているアプリの BundleId を知りたくなることがあります。構成プロファイルを作成したり、MDMでアプリケーション関連の操作をしたり、Apple Configurator2 を触っているような時です。
自分が開発を担当しているアプリならそのBundleIDを記憶しているでしょうが、そうでない場合はどうやってBundleIDを調べるのでしょうか。本稿ではその方法を幾つか紹介します。
Xcode (development, InHouse, AdHoc)
手元にMacがあり開発環境のXcodeがインストールされているなら、iOS端末をMacにUSB接続した上で Xcode の Devices and Simulators の画面を見るとすぐに分かります。
サイドバーで見たいiOS端末を選択すると、INSATLLED APPS の蘭にインストールされているアプリの一覧が表示されます。Identifier の列がアプリの BundleID です。
AppStoreからインストールされたアプリ(公開App/カスタムApp/非表示App/TestFlight)は基本的に表示されません。
MDM (InHouse, AppStore)
対象となるiOS端末がMDMの管理下にあるならMDMの管理画面を見るのが一番手っ取り早いでしょう。
どんなMDMにも端末の詳細情報画面があり、その中でインストールされているアプリの一覧が表示されている筈です。
アプリの種類によらず全て確認できます。MDMによっては、MDMで配信したアプリのみを表示する設定ができる場合もあります。(BYOD端末の場合、個人がその端末で使用するアプリを見ることは適当でないため)
cfgutil (development, InHouse, AdHoc, AppStore)
Apple Configuratoe2 に付属している cfgutil を使って確認することもできます。cfgutil の詳細はApple Configurator2 付属のコマンドラインツール cfgutil の使い方の投稿をご覧下さい。
iOS端末をmacにUSB接続し、ターミナルを起動して、cfgutilの list コマンドで端末のECIDを特定します。
$ cfgutil list
次にECIDを引数に指定して以下のように get installedApps コマンドを実行すると、インストールされたアプリの一覧が出力されます。数秒程度待った後に、ECIDで指定された端末にインストールされているアプリ一覧が表示されます。
$ cfgutil -e [ECID] get installedApps
cfgutil コマンドでは、development, InHouse, AdHoc だけでなく、AppStore からインストールしたアプリも表示されます。
iTunes Search API (AppStore)
AppStoreに公開されているアプリに限りますが、iTunes Search API を使ってアプリidから BundleID を調べることもできます。
まずアプリidを調べる必要がありますが、アプリのURLが分かるならそのURL末尾の数字がアプリidです。
アプリのURLを探すには、アプリ名とiOSでググると良いでしょう。あるいは、マーケティング担当者向けに用意されている App Store Marketing Tools を使うこともできます。
検索ボックスにアプリ名を入れると、アプリのURLやアイコン画像等の情報を確認することができます。
アプリidを特定したら、ターミナルから以下のように入力すると BundleID を特定できます。(iTunes Search API は JSON を返すため、jqコマンドで必要な箇所のみに絞り込んでいます)
% curl -s 'https://itunes.apple.com/lookup?id=[アプリid]' | jq -r '.results[0].bundleId'
なお iTunes Search API を使う方法は InHouse アプリでは使えません。AppStoreに登録されないアプリだからです。またカスタムAppでは、アプリidは付与されるものの使えませんのでご注意下さい。
以上、アプリのBundleIDを調べる方法を紹介しました。BundleID(バンドルID)を調べる必要がある時に、試してみて下さい。