MENU

【swift アプリ開発】AppDelegateとSceneDelegateが無い場合のSwiftプロジェクト作成方法

  • URLをコピーしました!

こんにちは!Popoです。

あなたがiOSアプリ開発を行っている過程でこんな状況に遭遇されたことはないですか?

あれ~!
新規プロジェクトを作成したら、以前と異なるファイル構成になっている。

xcodeのバージョンアップは、あまり変更がない場合もありますが、作業に支障がでるような変更も時々あります。

今回、久しぶりに新規プロジェクトを作成して、「あれ?」と戸惑ってしまいました。

既存のアプリ改修作業が多くて、1年以上新規アプリ開発作業を行っていなかったですね。😓

記録を残しておきたいと思います。

こんな方へのお勧めの記事です。

  • Swiftのアプリ開発で、最近新規プロジェクトを作成してない方
  • SwiftUI→Swiftのプロジェクト切り替えを忘れた方
目次

新旧プロジェクトの比較

びっくりしたのは、AppDelegateがなくなっている!

以前作成したときのプロジェクトと何が違うのか洗い出してみました。

・info.plistがない
・AppDelegateがない
・ViewControllerがない
・main.storytboadがない

下記の2点は、まぁ無くてもいいやレベルの感覚です。(かなり古い時点のプロジェクトから止まっていたことがわかりますね😓)

  • ViewControllerがない
  • main.storytboadがない

私はStoryboardを使わない派です!

下記2点については、さすがに戸惑いました。

  • info.plistがない
  • AppDelegateがない

Info.Plistがない場合の対処方法

対処は簡単です。

・Xcodeの左側のTOPにあるプロジェクト名を選択
・TARGETSでInfoタブを選択

ここに移動されていました。

【swift アプリ開発】Info.Plistがない場合の対処方法 XCODE

AppDeleateがない場合の対処方法

この箇所は、もっと簡単に記述できる方法があります。また、記事にしてみたいと思います。(2023年7月5日)

こちらもそれほど難しい内容ではありません。

・「~App.swift」に「@UIApplicationDelegateAdaptor」を追加
・「~App.swift」に「AppDeleate class」を追加

【swift アプリ開発】AppDeleateがない場合の対処方法 XCODE

「~App.swift」に下記を追加します。

@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegatevar body: some Scene {WindowGroup
{
ContentViewApp()
}

class AppDelegate: UIResponder, UIApplicationDelegate
{
}

「class AppDelegate: UIResponder, UIApplicationDelegate」内にiOSアプリのライフサイクルを記述します。

結構以前からなくなっていたことを知りびっくりしました。

Xcodeのバージョンアップ内容を把握する

いざ作業を始めて驚くような事がないようにするにはどうすればいいでしょうか。

Xcodeがバージョンアップされたのは、App Storeから自動的にダウンロードが通知されるのでわかると思います。

Xcodeのバージョンアップがあった場合
例えば、Xcode14のリリース内容を確認したい場合は、「xcode14」とGoogleで検索を行えば色々と情報がでてきます。Xcodeバージョンアップ時は情報を取りにいきましょう!

また、バージョンアップ時にAppleからリリースノートの展開があります。

Apple Developer、SNS等からバージョンアップ情報を把握するようにこころがけましょう!

まとめ

新規プロジェクト作成時、AppDelegateとSceneDelegateが無くなっていることに気づき、その対応方法を記載しました。

情報が過去から止まった状態にならないように!

  • バージョンアップ時、Apple Developer、SNS等からバージョンアップ内容を把握するようにこころがけましょう!
  • XcodeだけではなくiOSやMacOS、AppConnectStoreのバージョンアップ時もチェックするようにしましょう!

iOSアプリ開発を継続的に行っているエンジニアでも、案外チェックしていない方多いと思います。

自分の情報の古さにショックを受けますよ!

それではまたっ!

よかったらシェアしてね!
  • URLをコピーしました!
目次