【5】Xcodeでの編集作業(5)エラー修正 編
ここまでXcodeで色々な編集をしてきましたが、ずっと画面左にいくつもエラーがついているのが気になりますね。説明通りに動かないこともあったと思います。そんな時は都度エラー修正をしていきましょう。
筆者の画面で出ていたエラーの修正方法について書いていきます。
- はじめに
- ① Swift、Xcodeのバージョンアップ ー Swift Conversion Conversion to Swift 5 is available
- ② Error Signing for “TyranoPlayerFramework” requieres a development team.
- ③ Localization Migrate ”English.iproj”(Deprecated)
- ④ Ambiguous Content The app icon set “AppIcon” has an unassigned child.
- ⑤ Expression implicitly coerced from ‘Any?’ to ‘Any’
- ⑥ ‘substring(from:)’is deprecated. Please use String slicing subscript with a ‘partial range from’ operator.
- ⑦ その他の Swift Compiler Warning (Error)
- おわりに
はじめに
表示されるエラーのほとんどは、ティラノプレイヤースタンドアロン版が作られたときからSwiftやXcodeのバージョンが変わったことによって、推奨されるプログラミング言語の表記方法が変わったことによるものです。
世界的に開発が進められているSwiftやXcodeのバージョンアップのスピードはとても早く、個人開発(凄すぎる)のティラノ製品で常に最新バージョンに最適化していくのは人手やお金の差でかなり厳しいと思われます。(最適化してもすぐにSwiftやXcodeはより新しいバージョンが出てくるので…)
現在配布してくださっている最新版のティラノプレイヤースタンドアロン版でも、動作に影響を与えるエラーさえ修正してしまえば問題なく使えるので直していきましょう。
エラー箇所は左の欄の左から4つ目、エラーマークのアイコンをクリックすると表示されます。
① Swift、Xcodeのバージョンアップ ー Swift Conversion Conversion to Swift 5 is available
⚠️ Swift Conversion
⚠️ Conversion to Swift 5 is available
これは、筆者がXcodeをダウンロードしたときから時間が経って最新バージョンでは無くなったために出てきたものです。Xcodeはバージョンアップするとそれまで作ってきたアプリのコードが動かなくなることがあるので、問題なさそうかしっかり検索・確認してからバージョンアップするようにしましょう。
よほど古いものでなければエラーメッセージが出たままでもリリースはできるので、バージョンアップはアプリのリリースが終わるまで一旦保留にしておくのも手です。
このエラー表示をクリックするとアップデート版をインストールすることができます。
② Error Signing for “TyranoPlayerFramework” requieres a development team.
❌ Error
❌ Signing for “TyranoPlayerFramework” requieres a development team.
どうやら上手くサインインできていないときにこのエラーが出るようです。
①左の欄からエラー表示をクリックし、表示された「TyranoPlayerFramework」>「Signing & Capabilities」>「Signing」のところの「Team」をクリックし、「Add an Account…」を選択します。
※既に設定してあれば選択肢にTeam名が出てくるのでそれを選択すればOKです。
メニュー画面が出てくるので上の項目から「Accounts」を選択し、「Apple IDs」の欄の左下の「+」を押します。
「Apple ID」を選択しContinueを押します。
Apple ID(アプリリリース用に作ったもの、または普段使っているIDを使うならそれ)とパスワードを入力し「Next」を押します。
先ほどのメニューにApple IDと「Team」が表示されるようになりました。
次に、右下の「Manage Certificates…」をクリックします。
この画面が表示されればOK。Doneを押して元の画面に戻ります。
もう一度「Team」の欄をクリックすると、先ほどの選択肢で「Add an Account…」の上に登録した自分のアカウントが表示されているのでそれを選択します。
これでエラー表示は消えます。
③ Localization Migrate ”English.iproj”(Deprecated)
⚠️ Localization
⚠️ Migrate ”English.iproj”(Deprecated)
説明文要約:英語の非推奨のローカライゼーションを英語に移行することをお勧めします
エラー表示をクリックし「Migrate」を押せばOKです。
④ Ambiguous Content The app icon set “AppIcon” has an unassigned child.
⚠️ Ambiguous Content
⚠️ The app icon set “AppIcon” has an unassigned child.
「変なサイズの画像が混ざってるよ」というエラーです。
エラー表示をクリックすると、自分が入れたアイコン一覧のページが出ます。
一番下までスクロールするとエラーマークがついているアイコンがあるので消去しましょう。
⑤ Expression implicitly coerced from ‘Any?’ to ‘Any’
⚠️ Expression implicitly coerced from ‘Any?’ to ‘Any’
エラー表示をクリックすると、ViewController.swiftの34行目のところで
print(userAgent ??)のところにエラー表示が出ています。
ので、この部分を
print(userAgent!) に書き換えます。(「!」を足しただけ。空白は入れない。)
私はこれで解決できました。
⑥ ‘substring(from:)’is deprecated. Please use String slicing subscript with a ‘partial range from’ operator.
また、その下に
⚠️ ‘substring(from:)’is deprecated. Please use String slicing subscript with a ‘partial range from’ operator.
というエラーも出ています。
「以前のバージョンで使われていた”substring(from:)…”という書き方は非推奨だから他のを使うといいよ」というニュアンスは分かったのですが、直し方がどうしても分かりませんでした。
というわけで直さず(直せず)そのままApp審査に提出したところ、問題なく通りました。このエラーは出たままでも何とか大丈夫そうです。
⑦ その他の Swift Compiler Warning (Error)
Swift Conpiler Warning/Error の中にエラー項目がたくさん書かれています。
が、基本的には
①エラー表示をクリック
⬇︎
②表示された黄色(or赤)いラインの先頭にある黄色い三角形(or赤い丸)のところをクリックする
⬇︎
③修正候補が出てくるので「Fix」ボタンを押す
で、コードが分からなくても解決できちゃいます。
初心者想いの嬉しい機能…
残りのエラーも同様にしてどんどん解決していきましょう。
おわりに
エラーは概ね解決できましたでしょうか。
また、書き換えたはずのコードがシミュレーターで反映されないときはシミュレーターを一度停止して再生しなおしてみたり、Xcodeを再起動してみると上手くいくこともあります。試してみてください。
コメント