1
2

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.

【Xcode】xcode This bundle is invalid. The Info.plist key CFBundleExecutable のエラーについて

Last updated at Posted at 2020-08-11

どうも、ねこきち(@nekokichi1_yos2)です。

今回は、下記のエラーについて解説します。

This bundle is invalid. The Info.plist key CFBundleExecutable contains value プロジェクト名 in Payload/プロジェクト名.app. It should not contain any of these disallowed characters: \ [ ] { } ( ) + *

どんなエラーか

Google翻訳だと、

このバンドルは無効です。 Info.plistキーCFBundleExecutableには、ペイロードプロジェクト名.appに値プロジェクト名が含まれています。 次の許可されていない文字を含めることはできません:\ [] {}()+ *

つまり、*CFBundleExecutable、あるいはプロジェクト名に使用禁止の文字(:\ [] {}()+ )が含まれてるのが問題、だそうです。

CFBundleExecutableとは?

Xcodeでの実行可能ファイル、言い換えると、アプリまたはプロジェクトで表示される名前。

どういう状況で遭遇したか

下記のアプリを初めてリリースする際、Xcode経由でAppStoreConnectにipaファイルをアップロードした時に遭遇しました。
→StudyApp

原因は、プロジェクト名に()が入っていたからです。
(プロジェクト名は、(Beta)StudyApp、でした..。)

どう解決したか?

プロジェクト名を変更

最初は、プロジェクト名を変更しようとしました。
(参考:Xcode10でプロジェクト名を変更する

ですが、どこかでミスったのか、Xcodeでファイル構成がおかしなことに。
(本来の構成:左、 おかしな構成:右)
スクリーンショット 2020-08-11 14.05.30.pngスクリーンショット 2020-07-23 11.45.13.png

プロジェクト名の変更は、
・ファイル名
・ファイルの参照先
・info.plistの値
などの変更も必要なので、1つでも手順を間違えると、最悪元の状態に戻せなくなります。
(GitHubに最新版を上げてたのでプロジェクトは無事に復元できましたが。)

そこで、違う方法を取りました。

アプリとしての名前を変更

そもそも、今回のエラーはCFBundleExecutableの値が原因です。

じゃあ、CFBundleExecutable、をどう変更するか。

実は、CFBundleExecutableと
・EXECUTABLE_NAME
・PRODUCT_NAME
・TARGET_NAME
は同値だったのです。

(CFBundleExecutable = EXECUTABLE_NAME)
スクリーンショット 2020-08-11 15.37.58.png
(EXECUTABLE_NAME = PRODUCT_NAME + EXECUTABLE_PREFIX + EXECUTABLE_SUFFIX)
スクリーンショット 2020-08-11 15.33.13.png
(PRODUCT_NAME = TARGET_NAME)
スクリーンショット 2020-08-11 15.35.08.png

つまり、TARGET_NAMEを変更すれば、CFBundleExecutableを含めた他の値も同じ値になります。

言い換えると、プロジェクト名を変更しなくても、CFBundleExecutableを変更できるのです!!

検証

では実際に、test3、のプロジェクトを例に行ってみます。
スクリーンショット 2020-08-11 15.25.00.png
PRODUCT_NAMEも、test3。
スクリーンショット 2020-08-11 16.02.30.png

アプリの名前も、test3、となっています。
スクリーンショット 2020-08-11 15.28.34.png
そして、CFBundleExecutable(EXECUTABLE_NAME)、も、test3、です
スクリーンショット 2020-08-11 16.01.05.png

TARGET_NAMEを変更します。
スクリーンショット 2020-08-11 15.25.10.png
スクリーンショット 2020-08-11 16.02.45.png
スクリーンショット 2020-08-11 15.26.23.png
スクリーンショット 2020-08-11 16.03.31.png

結果、TARGET_NAMEを変更することで、
CFBundleExecutableの値を変更
アプリの名前を変更
が行えました。

まとめ

今回のエラーは、TARGET_NAME、を変更することで解決しました。

また、
(プロジェクト名ではなく、アプリ名を変更したい)
場合もTARGET_NAMEにお好きなアプリ名を入れるだけで実現します。

実を言うと、当記事の内容は、アプリ道場サロンのオーナーであるあきお氏の多大なご協力で生まれたものです。

したがって、本来はあきお氏が導き出した解決方法ですが、許可をいただいて、Qiitaに投稿させていただきました。

告知ですが、僕が加入しているアプリ道場サロンにはiOSアプリ開発に関わるエンジニアや開発者の方が多数在籍しております。

もしご興味があれば、ぜひ!
https://community.camp-fire.jp/projects/view/281055

参考

Xcode 7 submission error CEFBundleExecutable in the Info.plist may not contain any of these characters \ [ ] { } ( ) . + *
Xcodeでビルド時にCFBundleExecutableのエラーが発生する
OS-Xアプリバンドルには常にInfo.plist - CFBundleExecutableが含まれていますか?

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?