LoginSignup
36

More than 5 years have passed since last update.

zipが使えれば大丈夫!ipaのプロビジョニング設定を判別

Last updated at Posted at 2014-03-17

はじめに

ipaにしてから、releaseだっけ、adhocだっけと迷ったのです。

方法

確認の方法は次のいずれかで調べることができます。
(1)codesighコマンド
(2)embedded.mobileprovision

個人的には
(1)で行うことはほとんどなかったりします。
ipaファイルを解凍後に(2)をmiエディタで確認しています。

codesignコマンド

  1. ipaファイルの拡張子をzipに変更し解凍
  2. Payloadフォルダにappファイルが含まれる形で展開される
  3. 取り出したappファイルをcodesignコマンドで実行
$ codesign -d --entitlements :- hogehoge.app

:-について

(2015/3/20 追記)
コメントでご指摘をいただいて追記しました。
codesign の pathに指定しているパラメータは
: ("blob")headerに対応。
- 標準出力
:をつけることで出力時に文字化けて出力されるバイナリを削って出力してくれます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>FAEH9523ZZ.jp.co.hoge.tap.2014.ImageViewer</string>
    <key>get-task-allow</key>
    <false/>
    <key>keychain-access-groups</key>
    <array>
        <string>FAEH9523ZZ.jp.co.hoge.tap.2014.ImageViewer</string>
    </array>
</dict>
</plist>

分かること

push通知の設定があればdeveloper用とproduction用の区別

分からないこと

adhocとreleaseの区別

embedded.mobileprovision

署名に使ったプロビジョニングファイルがappファイルにそのまま入っています。

  1. ipaファイルの拡張子をzipに変更し解凍
  2. Payloadフォルダにappファイルが含まれる形で展開される
  3. appファイルを右クリックし、"パッケージの内容を表示"を選択
  4. embedded.mobileprovisionを見つけて開く

プロビジョニングファイルそのものです。ファイル名もkeyとしてはいっています。

分かること

  • push通知の設定
  • デバイス登録されている端末
  • プロビジョニングファイルが生成された日時

などなど

Appleへの申請用とadhocの違い

デバイス登録されている端末情報(ProvisionsAllDevices)で判断しています。追加されていなければreleaseかなと。

参考

さいごに

プロビジョニングファイルの指定についてはビルド時とipaとして書き出す時の二回あります。
アーカイブしたときに保存されるXcode Archiveという形式にするときと
Xcode Archiveからipaを作成する場合で、Archive時に指定した別プロビジョニングファイルと差し替えのためでした。

Register as a new user and use Qiita more conveniently

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