Help us understand the problem. What is going on with this article?

フリーランス開発者が「初めてでやり方が分からないクライアント」から受託した場合のiOS証明書

前提

  • フリーランスの開発者が、iOSの開発案件を受託しました。開発者はApple IDを取得済みです。
  • クライアントは、既にApple Developer Programに参加済みのiOSアプリの配給元であり、Developer Consoleが使用できます。ただし、初めてでやり方が良く分かりません。
  • 双方とも、Macが使用可能です。
  • コンソールの使用方法についての情報は巷に溢れているし、UIが繁く変わるので、この記事では扱いません。

手順

概念図

iOS 証明書.png

配給元と開発者の証明

  1. 開発者側作業
    1. Macで、キーチェーンアクセスを開きます。
    2. 開発者のApple IDと名前で証明書要求ファイル(.certSigningRequest)を作り、自身のApple IDとともにクライアントに渡します。
  2. クライアント側作業
    1. Macで、キーチェーンアクセスを開きます。
    2. クライアントのApple IDと名前で証明書要求ファイル(.certSigningRequest)を作ります。
    3. 作った証明書要求ファイルを使い、Developer Consoleで、iOS Distribution証明書を作ります。
    4. 作ったiOS Distribution証明書ファイル(.cer)をダウンロードして、キーチェーンアクセスに登録します。
    5. 登録した証明書から個人情報交換ファイル(.p12)を書き出します。
    6. 開発者から受け取った証明書要求ファイルを使い、Developer Consoleで、iOS Development証明書を作り、証明書ファイル(.cer)をダウンロードします。
      1. (開発者に証明書へのアクセス権があれば、自身で作ることができます。)
    7. 開発者から得たApple IDをApp Store Connectに登録して開発者としてのロールを与えます。
    8. 書き出した個人情報交換ファイル(.p12)と、ダウンロードしたiOS Development証明書(.cer)ファイルを開発者に渡します。
  3. 開発者側作業
    1. クライアントから受け取った二つのファイルをキーチェーンアクセスに登録します。

アプリの証明

  1. 開発者側作業
    1. クライアントにテストデバイスのUDIDを伝えます。
  2. クライアント側作業
    1. Developer Consoleで、アプリを登録します。
    2. 続けて、クライアントが使用するテストデバイスのUDIDと、開発者から得たUDIDを登録します。
    3. 最後に、テストに使うデバイスを指定して、アプリのProvisioning Profileを生成します。(開発者にプロファイルへのアクセス権があれば、作ったファイルを手渡す必要はありません。)
  3. 開発者側作業
    1. Xcodeでアーカイブを実行する際に、適切に指定します。

XcodeのOrganizerでうまくいかない場合

  • Signingを自動にせず手動を試してみましょう。
  • Xcode > Preference > Accounts を確認しましょう。
  • Xcode > Product + Option > Clean Build Folder... を試してみましょう。
  • Macを再起動してみましょう。(まれによくある)
  • Apple側の不具合を疑ってみましょう。サポートに問い合わせを出せます。
    • 何をやってもダメなので問い合わせたら「サーバの不具合でした」ということがありました。
  • 諦めて寝ましょう。
    • Appleからの返答は時間がかかります。しかし、不具合なら翌日には直っているかも知れません。

更新作業

  • 各証明書には有効期限があり、年次更新が必要です。
    • iOS Distribution 証明書の更新
      • 実際には更新ではなく新規作成で、初回と同じ手順で作業します。
      • 期限切れの証明書は破棄します。

あとがき

  • アプリ開発者が自分で配給する場合の情報は豊富ですが、委託側と受託側に作業を分離して双方を網羅した情報が乏しかったので記事にしてみました。
  • 想定が妙に具体的ですが、特定の企業や個人とは関係ありません。(ありませんてばありません!)
tetr4lab
自分がネットから受け取ってきたような価値を僅かでもネットに返せたらと思っています。 Unityで、主に1人で作っています。 受託開発もいたします。 業務外のご提案も歓迎いたします。
https://tetr4lab.nyanta.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away