3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

XcodeでArchiveするとOther items(Generic Xcode Archive)になってしまう原因の探り方

Xcodeからアプリを公開するためにProduct > Archiveを行うと、生成されるファイルがなぜかGeneric Xcode Archiveとなり(iOS App Archiveになることを期待している)OrganizerのOther itemsのカテゴリに振り分けられてしまうという症状に長いこと悩まされていました。

スクリーンショット 2020-01-16 9.36.00.png

やっと解決することができたので、その方法をここに記そうと思います。

環境

Xcode 11.2.1

注意

筆者はReact Nativeでの開発をメインにやっているため、iOSネイティブのアプリ開発の知識やXcodeに対する知識が豊富ではありません。

この記事の内容自体はSwiftやObj-Cを使ったネイティブでのアプリ開発時にも役に立つと思いますが、念の為ネイティブでのアプリ開発にはそれほど詳しくない人間が書いているという点だけ了承した上でお読みください。。。

ぐぐった

この問題が発生した時にググったところ同じ症状の人をたくさん見つけることができました。

日本語の記事ではこちらの方や

アプリのArchiveでipaが作れなくて焦ったメモ - Qiita

Apple公式のドキュメントにも記載があります。

しかし上記記事たちで触れられている「Skip install」や「Heders」の設定を見ても、自分の場合特に問題がなく途方に暮れておりました。

生成されるGeneric Xcode Archiveの中身を見てみる

正常にiOS App Archiveと認識されるアーカイブとGeneric Xcode Archiveとして認識されてしまうアーカイブの中身を比べてみることに。

アーカイブの中身をみるには、XcodeのWindow > Organizerを開き、対象のアーカイブの上で右クリックをし、

スクリーンショット 2020-01-16 9.49.07.png

Show in Finderを選択し

スクリーンショット 2020-01-16 9.49.19.png

アーカイブを右クリックし、パッケージの内容を表示でOKです。

treeコマンド等で正常にアーカイブできる別のアプリと中身を比較してみると、

スクリーンショット 2020-01-16 9.53.47.png

Productsディレクトリ以下にApplicationsのほか、 usrというディレクトリがあるのが確認できました。(正常なアーカイブには存在しない)

このusrディレクトリを掘っていくと、たくさんのヘッダーファイルが入っていることが確認できました。

image.png

これらのファイル名をXcodeのプロジェクト内で検索してみたところ(Command + Shift + Oでファイル検索できます)、特定のライブラリがヒットしました。(今回はSDWebImage)

image.png

どうやらSDWebImageのHeaderが怪しいというところまでこれであたりがついたので、SDWebImageを見てみたところ

image.png

こんな感じで、先ほどググった時の記事と同じような感じで、HeadersのPublicのところにヘッダーファイルが存在しました。

解決!

という感じで原因を特定しました。

今回原因となっていたSDWebImageは、開発しているアプリが依存しているライブラリが依存しているライブラリだったため、SDWebImageに依存しているライブラリのバージョンをあげて対応しました。(なんでこのバージョンだけこうなっていたのかよくわからんままですが…)


普段からiOSアプリをネイティブで開発している方々にとってはもしかしたら当たり前のことなのかもしれないですが、普段はReact NativeでJSを書いてる身にはなかなか苦しかったのでどなたかの役に立てば幸いです。

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
Sign upLogin
3
Help us understand the problem. What are the problem?