4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

「IPA processing failed」と表示されてipaの作成が出来ない場合の対処方法

Last updated at Posted at 2020-07-30

概要

アーカイブしたプロジェクトから、ipaを作成しょうとすると、「IPA processing failed」と表示されて作成出来ない問題が発生しました。

いろいろ調べて解決方法が分かりました。

ネット上では間違った方法が多いので、同じ問題にぶち当たった方のために、解決方法をQiitaに残します。

XcodeのOrganizeから作成しようとした時の画面
aaaaa01.png
CIサービス(Bitrise)でも、exportArchiveコマンド実行時にエラー
スクリーンショット 2020-07-31 0.04.57.png
解決方法を先に言ってしまうと、Carthage の設定を見直せば、解決します。

解決方法

Carthageの公式ページでは、導入手順がいつからか、xcfilelistを使うようになっていました。

公式ページ以外のCarthageのインストール手順を書いた記事では、ほとんどが、Input Filesに直接パスを指定する記事で、xcfilelistを使った記事を見かけなかったので、変わったことに気づいていませんでした。

Carthageの公式ではxcfilelistを使っているので、こっちの手順に切り替える必要があったのかもしれません。

Input/Output File Lists とは、Xcode10で追加された Input / Output Files に代わる、
xcfilelist をパスとして指定できる新たな枠組み

以下の2つの作業を行うことで、解決できます。

  • Carthageの設定をInput Filesから、xcfilelistに変更
  • Embed Frameworks から、CarthageのFrameworkを削除

1. Carthageの設定をInput Filesから、xcfilelistに変更

Carthageの公式ページの手順の通りに、Input Filesから、xcfilelistに変更すればOKです。

ただし、Input Filesから、xcfilelistに変更後、ビルド時に「Error: Multiple commands produce」と表示されてしまうことがあるので、それの場合、別途、対処が必要になります。
スクリーンショット_2020-07-31_1_49_56.png

2. Embed Frameworks から、CarthageのFrameworkを削除

Xcode10から、デフォルトになった新しいビルドシステムは、フレームワークのコピーシステムが稼働するようで、それが重複してしまってエラーとなるようです。

具体的な対処方法としては、TARGETS → Build Phases → Embed Frameworks から、xcfilelist記載したCarthageのFrameworkを削除します。

最終的には、こういった形になるはずです。
スクリーンショット_2020-07-30_23_08_25.png
上記のプロジェクトの場合の、xcfilelist
bbbb.png
これで、ipaを作成できるようになります。

経緯

このページにたどり着いた方のために、試行錯誤して解決方法にたどり着いた経緯を書いておきます。

シュミレーターと実機では、Xcodeから直接インストールすれば、どちらも問題なく起動していました。

その後、OTA配布しようと思って、CIでビルドしてアーカイブすると、エラーが出ることに気付き、Xcodeでも試したがダメでした。

いろいろ調べたところ、シュミレータアーキテクチャが含まれているとipaファイルを作成できないという記事を見たのでで、それを参考にしてアーキテクチャを削除しましたが、自分の環境ではダメでした。

シミュレータアーキテクチャを削除すると、シミュレータでアプリ起動ができなくなるそうなので、これは正しい解決方法ではないなと思って、いろいろ探してみたら、下記の記事を見つけ、その通りにしてみると、ipaの作成が出来るようになりました。

Carthage + Xcode の Archive で IPA processing failed が発生した場合の対処 - hd 5.0

シュミレータアーキテクチャを削除というのは、正しい対処方法ではないと思うので、まずは、Carthageを再設定してみてください。

その他

「IPA processing failed」のエラーログについて

XcodeのOrganizeのエラーが出た画面でShow Logsからフォルダを開くと、「IDEDistribution.standard.log」という名前のログがあります。
ccccc.png
スクリーンショット 2020-07-30 22.54.39.png
ここで、エラー内容を確認することができます。
スクリーンショット 2020-07-30 22.56.06.png
自分の場合は、Carthageでインストールしているライブラリ(このログでは、APIKit)でエラーが出ているので、Carthageが怪しそうだなというところまでは、気がつきました。

シュミレータアーキテクチャを削除したときのCIのエラー

誰かの役に立つかもしれないので、シュミレータアーキテクチャを削除したときのCIのエラーも貼っておきます。
スクリーンショット_2020-07-31_3_41_19.png
こちらは、「IPA processing failed」と表示されたあと、シュミレータアーキテクチャを削除してCIでビルドをしてみたときのエラーです。

参考にしたサイト

調査段階で遭遇したサイト

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?