トップ 一覧 置換 検索 ヘルプ RSS ログイン

iOSアプリを実機に載せるの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!Macと実機をUSBで接続してインストールする
http://tande.jp/lab/2012/01/1621

!!iOS Developer Program に登録
お金払って登録。

!!Xcodeのインストール
AppStoreからXcodeをダウンロードして、インストール。

!!開発証明書の取得と登録
!主な流れ
{{img image01.png}}

!「証明書署名要求ファイル(CSRファイル)」の生成
*開発に使うMacで、アプリ「キーチェーンアクセス」を起動
*キーチェーンアクセスのメニューから「証明書アシスタント>認証局に証明書を要求...」を選択
*保存ダイアログが表示されるので、デフォルトの名前のままCSRファイル(CertificateSigningRequest.certSigningRequest)を保存
*[鍵ペア情報]が表示されるので、[鍵のサイズ]は[2048ビット]、[アルゴリズム]は[RSA]を選択して、[続ける]ボタンをクリック
*CSRファイル(CertificateSigningRequest.certSigningRequest)がローカルに保存される

!ローカルに保存したCSRファイルをアップロード
*iOS Devloper Program にアクセス
*「Member Center」 -> 「iOS Provisioning Portal」を洗濯
*「Member Center」 -> 「iOS Provisioning Portal」を選択
*「Certificates」を選択し、「Request Certificate」ボタンをクリック
*「参照」ボタンで開いたダイアログで、先程のCSRファイルを選択し、アップロードする

!証明書ファイルをダウンロード
*「Certificates」ページの「Action」列のところに「Download」ボタンが表示される
*「Download」ボタンをクリックして、証明書ファイル(developer_identifier.cer)をローカルにダウンロード

!証明書をMacにインストール
*ダウンロードした証明書ファイルをダブルクリックすると、キーチェーンアクセスが起動して証明書がインストールされる

!!自分のiPhone,iPadを開発デバイスとして登録
!端末のUDIDを確認
*iTunesを起動します。
*iPhone/iPod touchを接続します。
*デバイスからiPodを選択します。
*シリアル番号が表示されます。「シリアル番号」の文字列をクリックします。
*表示が識別子に変わり、40桁の文字列が表示されます。これがUDIDとなる

!!App ID の取得
*iOS Devloper Program にアクセスし、App ID を作成
*テストアプリの制作にはワイルドカードの「*」を使った App ID を利用すると
 hoge.test.*
など。
※一度作った App ID は消す事ができない

!!Provisioning Profile の作成
*iOS Devloper Program にアクセスし「Member Center」の「iOS Provisioning Portal」を開く
*「Provisioning」を選択し、「Add Profile」ボタンをクリックして Provisioning Profile を登録する
,,
,Profile Name ,任意の名前を入力します。
,Certificates ,チェックを入れます。
,App ID ,上記で作成したものを選択します。
,Device ,利用するデバイスにチェックを入れます。

!!Provisioning Profile をXcodeに登録
*作成したProvisioning Profileをダウンロード
*Xcodeの「Window」から「Organizer」を選択
*「Organizer」ウィンドウを立ち上げ、「Deveices」タブを選択
*左サイドバーの「Provisioning Profiles」を選択し、「Automatic Device Provisioning」がチェックされていることを確認
*Provisioning Profile が自動的にダウンロードされて登録されているはず
*何も登録されていない場合は、「Reflesh」ボタンを押す

!!iPhone 実機へサンプルアプリをインストール
*Simurator の種類を選ぶプルダウンリストに、USB接続されたデバイス名がある
*ない場合は、対象のOSのバージョンを変えたりしてみる

!!!Webサーバからアプリをインストールする
http://kaigian.co.jp/taka/2013/ota.html
http://plus.vc/iphone/3355/
OTA(Over The Air) または in house と呼ばれる方法で実機にアプリをインストールする。

!!Provisioning Profiles の作成
iOS Provisioning Portal で Provisioning Profiles を作成する。
このとき、Distribution Method を 「in House」にしておく。

!!ビルド設定
Xcode のビルド設定を変更する。
Code SigningをProvisioning Portalで作ったDistributionに設定。

!!ビルド
!GUIでビルドする
Xcode の 「Product」 -> 「Archive」でアプリをアーカイブする。
この時、実行先をシミュレータではなく iOS Device を選択していないと、Archiveを選択できない。

ビルド実行後、Organizerが起動する。
Distributeを選択しアプリのファイルを作る。
このとき「Save for Enterprise Distribution」を選択すると plistファイルを生成できる。
URLは、「http://localhost/test/hoge.ipa」のようなアプリのURLを指定する。

!コマンドラインでビルドする
http://d.hatena.ne.jp/ryo_abe/20120226/1330242142
http://atkonn.blogspot.jp/2012_06_03_archive.html
コマンドでビルドするには、以下のようなシェルを作っておくと良い。

SDKの一覧を取得する(プロジェクトのルートディレクトリで実行)
  xcodebuild -showsdks

ターゲットの一覧を取得する(プロジェクトのルートディレクトリで実行)
 xcodebuild -list

User interaction is not allowed って出る場合
 security unlock-keychain /Users/funa/Library/Keychains/login.keychain
でキーチェーンのロックを解除しておく必要がある。

  #!/bin/sh
  
  #SDK
  SDK="iphoneos5.0"
  
  # コンフィグレーション(「Debug」、「Release」、「Ad hoc」)
  CONFIGURATION="Release"
  
  # Xcodeのプロジェクト名
  PROJ_FILE_PATH="hoge.xcodeproj"
  
  # ターゲット名
  TARGET_NAME="hogeTarget"
  
  #「Build Settings」にある、プロダクト名
  PRODUCT_NAME="hogeProduct"
  
  # app出力先ディレクトリ名
  OUT_APP_DIR="out_app"
  
  # 出力先ipaディレクトリ名
  OUT_IPA_DIR="out_ipa"
  
  # 出力されるipaファイル名 
  IPA_FILE_NAME="hogeIpa"
  
  # ライセンス取得時の開発者名
  DEVELOPPER_NAME="iPhone Distribution: hoge Developper"
  
  # アプリのプロビジョニングファイルのパス
  PROVISIONING_PATH="${HOME}/Library/MobileDevice/Provisioning\ Profiles/hoge.mobileprovision"
  
  
  
  # 出力先ipaディレクトリ作成
  # -------------------------
  if [ ! -d ${OUT_IPA_DIR} ]; then
      mkdir "${OUT_IPA_DIR}"
  fi
  
  # クリーン
  # -------------------------
  xcodebuild clean -project "${PROJ_FILE_PATH}"
  
  # ビルド
  # -------------------------
  xcodebuild -project "${PROJ_FILE_PATH}" -sdk "${SDK}" -configuration "${CONFIGURATION}" -target "${TARGET_NAME}" install DSTROOT="${OUT_APP_DIR}"
  
  # Create ipa File
  # -------------------------
  xcrun -sdk "${SDK}" PackageApplication "${PWD}/${OUT_APP_DIR}/Applications/${PRODUCT_NAME}.app" -o "${PWD}/${OUT_IPA_DIR}/${IPA_FILE_NAME}.ipa" -embed "${PROVISIONING_PATH}"
    
!!plist
自動生成していない場合は以下の様なXMLをplistファイルとして作成する
  <?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>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>https://dl.dropboxusercontent.com/u/1234567/MyApp.ipa</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>com.exsample.MyApp</string>
                <key>bundle-version</key>
                <string>1.0</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>Exsample</string>
            </dict>
        </dict>
    </array>
  </dict>
  </plist>


!!Webサーバに設置する
!配布用htmlの作成
{{code HTML,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta name="viewport" content="width=device-width" />
    <title>ダウンロードページ</title>
  </head>
  <body >
    <h1>ダウンロードページ</h1 >
    <a href="itms-services://?action=download-manifest&url=http://xxx.xxx.xxx.xxx/hoge/MyApp.plist" > インストール</a >
  </body >
</html >
}}

!ファイルの設置
*index.html
*アプリファイル(MyApp.ipa)
*plistファイル(MyApp.plist)
をWebサーバに設置する。

!!インストール
実機でindex.htmlにアクセスすればインストールされるはず。


{{category2 OS,Mac}}