Xcode の Archive とか DeployGate とか

周回遅れになっているような気もするのですが、DeployGate という開発中のアプリを
効率良くテスターさんなどに配布するためのサービスを試用してみました.

これはなかなか良いモノですね.

Apple が TestFlight を買収して iTunesConnect に統合して iOS開発者にとっては使いやすく
なったようですが、Androidアプリ開発の事も考えるとデプロイツール(サービス)は統一しちゃ
いたいものです.

さて、DeployGate はチュートリアルもわりとしっかり作られているので使い始めの苦労は少なかっ
たんですが、なぜか作成中のアプリをアーカイブするときに"Generic Xcode Archive"と判別されて
しまって、DeployGate に登録するための .ipa ファイルが作れずにハマってしまったのです.

分かってしまえばなんてことは無いことなんですけど、せっかくなので対応方法をまとめておきます.

現象

Xcode(6.3.2) で、iOSアプリを [Product]-[Archive] としたときに、アーカイブされたファイルの種別(Type)が
"Generic Xcode Archive" となってしまう.

(このため、iOS用の ipa ファイルとして Export できない)

原因

アプリ本体のプロジェクトとは別に、Static Library などの参照のために追加したプロジェクトが存在している場合、
ライブラリ側のプロジェクト中で "Build Settings" の "Skip Install" が "NO" になっていると、ライブラリのバイナリ
ファイル自体もアーカイブに含まれる.

複数のバイナリが含まれるアーカイブは、"Generic Xcode Archive"と判別されるので iOS用の ipa ファイルとして
Export できない.

解決方法

Static Library 側のプロジェクトの設定を見直す.

("Build Settings" - "Skip Install" を "YES" にする)

どこではまっていたか?

フォント描画のテストを行っていて、 FreeType2 のプロジェクトを参照するように設定していたが、
FreeType2 の "Skip Install" フラグが YES になっており、複数のバイナリがアーカイブに含まれて
しまっていた.

まとめ

分かってしまえばたいした事はないですね...