トップ 最新 追記

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|

2023-01-30 [macOS][iOS]アプリケーション識別子

アプリケーションを識別するIDとは何か?それは、世界でユニークなIDなのか?開発者(Developer Program)でユニークなIDなのか? ストアでユニークなIDなのか?著名なアプリのIDを自分のアプリにつけれるのか?アプリ内課金の不正対策で、レシートが他のアプリのものかどうかを何で確認すればいいのか?一般的なファイルフォーマット(例えばテキストやPNG)のファイルをダブルクリックすると、それを作成したアプリが起動するのは何故か?

ちょっと気になるが知らないと困ることがあるアプリケーション識別子ついて、懐かしい情報から最近の情報まで調査した。

_ ファイルタイプとクリエータ

Macintosh Systemでは4文字の数値('PTNG'や'APPL'など)で種類を表していた。ファイルの種類はファイルタイプ、アプリケーションの識別はクリエータと呼ばれ、重複を防ぐため、APDA(Apple Programmer's and Developer's Association)への登録制度を設けていた。

種類説明
ファイルタイプ 'PTNG'MacPaint書類(PaiNTinG)
'APPL'アプリケーション
'TEXT'テキスト・ファイル
クリエータ '8BIM'Photoshop
'WILD'HyperCard
Jedit Ω

上図の設定を選択するとクリエータが保存されるようになり、プレーンテキスト・ファイルのダブルクリックでJedit Ωが立ち上がる。

_ Uniform Type Identifier (UTI)

データを識別する方法は以下のように複数個の種類が存在するが、UTIはシステム内で扱うデータを識別するための一本化された方法。

  • Macintosh Systemのファイルタイプ (OSType)
  • MS-DOSからの拡張子
  • MIMEタイプ

_ App ID

形式は、seed_id.id。seed_idは10文字の「バンドルシードID(Bundle Seed ID)」で、Member CenterのアカウントIDに基づいて決定される。idはバンドルID。

タイプApp IDバンドルID
明示的123456789A.com.example.Democom.example.Demo
ワイルドカード123456789A.*com.example.Demo
123456789A.com.example.*com.example.Demo

_ Apple DeveloperサイトのApp ID

「証明書、ID、プロファイル」のIdentifiersで登録できるバンドルIDは、ストアでの重複を許さない仕様となっている。

_ Universal links の associated domains

以下は設定ファイルの例。

{
  "applinks": {
      "details": [
           {
             "appIDs": [ "ABCDE12345.com.example.app", "ABCDE12345.com.example.app2" ],
             "components": [
               ...
             ]
           }
       ]
   },
   "webcredentials": {
      "apps": [ "ABCDE12345.com.example.app" ]
   },
    "appclips": {
        "apps": ["ABCED12345.com.example.MyApp.Clip"]
    }
}

appIDsの書式は以下のとおり。

.

App IDだ。

_ StoreKitのレシート

レシートにはApp IDでなくバンドルIDが。 でも、開発者サイトで登録するバンドルIDはユニークなので重複しない。

StoreKit レシート

トップ 最新 追記