Swiftによるアプリ開発におけるエラー対処

column B4 Swift error

B4 の堤です。

今回は研究の実験に用いるシステムを構築するために用いた”Swift”で生じたエラーについて書きたいと思います。私は書籍を参考にSwiftの勉強を進めましたが、書籍では解決できなかったエラーがいくつかありました。そのようなSwiftを触っている際に陥ったエラーとその対処法を載せようと思います。

Swiftを触っている際に陥ったエラーとその対処法

今回、私は「たった2日でマスターできるiPhoneアプリ開発集中講座:SwiftUI対応:Xcode12 iOS14対応」という書籍を参考に勉強しました。


この書籍はアプリを作成するために必要な設定、コード等すべて記載してあるので基本エラー等なく、最後まで読み進めることができます。しかしながら、私が勉強を進めていくうえで生じた書籍だけでは解決できないエラーがいくつか生じました。

これらを取り上げることで同じエラーで躓く人を減らせたらと思いました。

今回取り上げるエラーは以下の2つです。

  • アプリを実機転送する際にプロジェクトのチーム設定で"Bundle Identifier"がエラーを出してしまう。

  • その後、実機転送を行うと生じるエラー

  • その他のエラー

"Bundle Identifier"で生じるエラー

アプリのコードを書きおわり、Mac上でのシミュレーションではなく、実際に自分のiPhone上に作ったアプリを転送して動作の確認を行ったり、iPhoneで使えるようにすることがあるかと思います。

その際、Apple IDを追加し、それをプロジェクトのTeamに設定することで今まで生じていた”Signing for "プロジェクト名" requires a development team.”というエラーが解消され、実機に転送することが可能になります。

しかしながら今回、私はTeamを設定したところ新しいエラーが生じてしまいました。そのエラーは以下のようなものです。それぞれの日本語訳もつけておきます。


エラー文1

”Failed to register bundle identifier
The app identifier "自分で設定したbundle identifier" cannot be registered to your development team because it is not available. Change your bundle identifier to a unique string to try again.”

日本語訳

”「設定したbundle identifier」の登録に失敗しました。 「app identifier」の「設定したbundle identifier」をあなたのチームに登録することはできません。 「bundle identifier」を一意の文字列に変更してもう一度試してください。”

エラー文2

”No profiles for '自分で設定したbundle identifier' were found
Xcode couldn't find any iOS App Development provisioning profiles matching '自分で設定したbundle identifier'.”

日本語訳

”‘設定したbundle identifier’のプロフィールは見つかりませんでした。 Xcodeは、’設定したbundle identifier’に一致する iOSアプリケーション開発プロビジョニングプロファイル を見つけることができませんでした。”

これはTeamを設定したときにbundle identifierの登録を行なっているのだが、その登録名が重複してしまっているため登録できない。

そういったエラーの内容になります。したがって、重複しないようなbundle identifierを設定してあげることでエラーは解消されると、どのサイトにも記載してありました。

なのでほとんどの場合最後に日付を追加したりすることで解決できますが、私の場合はそれでは解決しませんでした。

そこでさらに調べると、どうやらbundle identifierに”icloud”を含むとエラーが出てしまうという記述を目にしました。

そこで早速Bundle Identifierからicloudを削除したところエラーが解消されました。

なぜエラーが解消されるのかは不明なようですが、無事エラーを解決できました。

しかしながら、今回用いた書籍ではBundle Identifiernについて冒頭で以下のように述べています。

”Bundle Identifierは入力することができません。「Project Name」と「Organization Identifier」を組み合わせて自動で生成されます。”

ーたった2日でマスターできるiPhoneアプリ開発集中講座ー より引用

またOrganization Identifierについては以下のように述べています。

”「Organization Identifier」はアプリが所属するグループを識別します。識別として利用されるおは、ドメイン表記を逆にした記述(逆ドメイン)です。 ドメインを持っていない方は、メールアドレスを逆から入力する方法もあります。”

ーたった2日でマスターできるiPhoneアプリ開発集中講座ー より引用

今回私はこのメールアドレスを逆ドメインで記述する手法を取り、メールアドレスにIcloudを採用してしまったため、以上のようなエラーが出てしまいました。

私のように「Organization Identifier」を設定して同じエラーに遭っている人はたくさんいるのではないかと思います。

実機転送で生じるエラー

上記のようなTeamやBundle Identifierの設定もうまくいき、今までに作ったアプリを次々と実機転送していたところ、いきなり以下のようなエラーが表示され、実機転送できなくなってしまいました。


エラー文

”Unable to install "アプリ名"
Please delete apps signed with your free account from this device to remain under the limit.”

日本語訳

”「アプリ名」をインストールできません 制限を超えないようにするには、このデバイスから無料アカウントで署名されたアプリを削除してください。”

これはエラー文を日本語訳するとすぐわかりました。

私を含めてほとんどの人は、アプリをリリースするすることは考えておらず、有料のディベロッパーアカウントに登録していないと思います。

その場合、作成したアプリを転送できる数は一度に3つまでと決まっているようで、それを超える数転送をしようとすると、上記のようなエラーが出て、事前に転送したアプリを削除しないと転送できなくなってしまうようです。

その他のエラー

その他、いくつかエラーが生じましたが、ここでの説明が難しいので参考にしたサイトを紹介したいと思います。

①開発アプリケーションのサポートOSを切り替える方法


これは開発アプリケーションがiOS 15を想定して作っていた場合、転送先のiOSも15以上でないとエラーが出てしまいます。

もうiOSのアップデートが来ない昔のiPhoneに転送する場合やアプリの想定iOSが高い場合にそれを変更することでエラーを解消できます。

その方法は以下を参照してください。

https://qiita.com/orimomo/items/299712d5b67214143613

②Xcodeのリフレッシュ方法

Xcodeは今まで正常にビルドできていたのに、いきなりビルドできなくなることがあります。その際、リフレッシュを行うことで正常にビルドできるようになることがあります。

以下の記事ではリフレッシュ(Cleanや再起動)の方法を取り上げているので、よかったら参考にしてください。

https://qiita.com/fuwamaki/items/70f74b7b3c72a7df96d3

参考:

  • https://ticklecode.com/failed_to_register_bundle_identifier/
  • https://meik.work/2020/04/08/xcodeエラー-実機テストでエラーが出る!/
  • https://qiita.com/hachi-lab/items/bc3187945539a3efc85e

まとめ

今回、上記のようにSwiftを触る際に生じる可能性のあるエラーとその解決方法を記述しました。

しかしながら、Swiftはまだまだ新しい言語で日々内容が更新されています。 そのため、2021/09の時点で最新であった参考書籍も今(2021/11)では新しいバージョンに対応できるよう、内容が修正された新しい書籍が出版されています。

このように、今回の記事に載っている内容では通用しなくなる日も遠くないです。 ですので、初心者のうちは参考にするサイトの更新日時や投稿日時を確認して対応する必要があります。また、今後ともSwiftを用いてアプリ開発を行うような人は常に変更点にきを使う必要があると思います。

最後まで読んでいただきありがとうございました。

Previous Post Next Post