iOSアプリ制作で必要な権限とValidate機能の利用


はじめに

2019/2/20あたりからAppleStoreConnectのApp Managerの権限周りでトラブルが発生しているようで
見にきてくれている人がいたらすみません。
こちらはだいぶ古い記事なので、解決には遠いかもしれませんが、何かの参考に貼っておきます

App Managerの権限は、アプリ制作に関することはAdmin同様に読めますが、2019/2/27現在、リリース用のプロビジョニングファイルが作れません。もうちょっとAppleの対応を待ってみます(問い合わせはしました)

問い合わせにエラーの表示されたキャプチャーなどを送り、Appleから調査しますと返信メールがきた数時間後にApp Managerでもリリース用プロビジョニングファイル作成ができるようになったことを確認しました。こっそり直すのなんなの。

のちほど、こっそりでなく返信はもらえました。

この返信に続いて別の権限について質問・回答を続けさせてもらい、結果、Appleの問い合わせ対応には満足しています。

以降は、
プログラミング知識、というよりは運用知識になります。

  • 各制作段階で必要なユーザアカウントの権限
  • Validate機能を活用しよう

最もばかばかしい

アップロード時のWarning発生、改修、そして内部バージョンあげ

を未然に防ぐための備忘録として書いています。

Submitしてしまうと内部バージョンをあげなければいけません。

その他、ipaの提出環境の確認に使える点をなど。

書いている時点での運用方法の一例であることをご理解ください。

権限分担

外注先や、クライアントなど、自社以外の方をアプリ制作のフローにアサインした場合に必要なアカウントと権限、そのフローの一例を
AppleIDの又貸しはAgreementで禁止されていることも踏まえて書いています。

アプリ制作とアカウント区分

最低限必要な権限について。
Archiveについては、Code Signing Identityの指定でiPhone Distributionを指定する場合はAdmin権限がいるかも、な部分がうろ覚えです。

Certificates, Identifiers & Profiles iTunes Connect
Run member
Archive member, Admin
IPAのExport Admin
Validate Admin?(memberで通るか確認後変更) Technical()
Submit Technical
(My Appの利用権限)
Application Loaderの利用 Technical
(My Appの利用権限)

Build & Run

実機転送を行うアプリの動作確認は、iOS開発者プログラムに参加したメンバーであれば可能

Archive

開発現場の終端として、Projectファイルで指定した証明書で署名されます。
アーカイブ時のBuild Configrationの初期設定がreleaseのままであれば、アーカイブ後にadhoc用、release用と署名の書き換えができます。

ソースコードの引き渡しがない外注先についてはこの形式でのやり取りをされているのではないでしょうか。

IPA書き出し

iTunes Connectへのユーザ登録は不要です。
書き出す場合は、adhocかrelease用のipaと想定

Validate

アーカイブにした状態からipaをアップロードすることなく簡易チェックができるので、多いに利用したいところ。
そのため、Enterprise版のipaでは使えない機能。

Terminalから

$ /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool -v -f /Users/ユーザ名/Documents/aaa/test.ipa -u [AppleID]

上記のように指定する場合はiTunes Connectのユーザは不要なようです。
iTunes Connectのユーザ登録がなくても出来るようになっていました。2015.7.8に確認
Xcodeから行う場合はiTunes Connectでのユーザ登録は必要。2016.3.8に確認

仕様がコロコロ変わっているのはいつものことで
作業するユーザアカウントについて制約が増えている印象は否めません。

Submit

iTunes Connectのユーザ登録が必要です。2015.7.8に未確認なので、確認が必要
My Appの機能と考えるとTechnicalの権限が最低必要(?)。
アーカイブにした状態からのアップロード方法。
提出するipaは先にアップロードしたipaより内部バージョンをあげなければいけない。

Application Loaderの利用

ipaにした後のアップロード方法。機能的にはSubmitと同じ。
submit時はあっという間にテキストに流れるアップロードの行程を見れるツール。

Validate機能で分かること

  • アーカイブされたアプリの状況
  • ipaを提出するXcode環境

アプリの状況

ビルド時に行った署名の状況やアイコンや起動画面といった画像の有無をチェックできます

ipaを提出するXcode環境

Xcodeの環境でのアカウントの設定やProvisioing Fileの同期が適当な場合は提出時のprovisioning Fileがおかしくなることがあります

  • Certificates, Identifiers & Profiles
  • iTunes Connect

ipaにする、validateする、でどちらの権限も必要になるので確認に使えます。

その他

使用アカウントのIDパスワードの管理

開発者サイトに入ってほしくないから、ユーザ追加できない、という場合は
XcodeのAccountsからエクスポートすれば、パスワードを教えずに運用できます。
エクスポート時に登録しているアカウント全部書き出されるので調整は必要。

参考URL

About Apple Developer Program Team Roles and Privileges
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ManagingYourTeam/ManagingYourTeam.html

Table 10-2 Abbreviated list of iTunes Connect modules, including availability by role
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/UsingiTunesConnect/UsingiTunesConnect.html

さいごに

手戻りのない制作が望ましいのですが、Appleの仕様変更に付き合う限り、難しいところがあります。
公式の情報が足りないのか、探しにくいなども感じていて悩ましいです。