
本記事では、Pythonのライブラリであるkivyにて開発したアプリを私がiphoneで実機テストする際にXcode上で発生したエラーに対する対処法をご紹介致します。紹介させて頂く内容としては、ライブラリが読み込めない場合(xcode dyId: Library not loaded)や開発者の設定(Signing for “アプリ名” requires a development team.)がされていない場合の2パターンになりましては、Xcode上のエラーになります。
✅ xcode dyId: Library not loaded (AVFAudio(ライブラリ)が読み込めない場合の対処法)
実機でテストする前の準備

上記の記事にて、Kivy-iOSのインストール, Xcodeプロジェクトの作成からXcode上でシュミレーターを用いて、実行する方法まで紹介されていますので、既に準備が終わっている上でこちらの記事をみて頂いている方がほとんでではあると思いますが、もし準備が完了してない方がおりましたら参考にしてもらえたらと思います。
エラー : チームが設定されていない

シュミレーターを用いてテストを行った際は特に問題がなかったため、私のiphoneにて実機テストを行うことに致しましたが、
しかし、、「Bulid Failed」とすぐに画面上には、表示されてしまいました…。
つまり、ビルドに失敗したんですね。

ビルドしようとしたら、上記の画像のように即行で「Bulid Failed」と表示されてしまう際に真っ先に疑うのは、開発チームの設定がされているかになります。
確認方法は、以下をご覧ください。
現在、実機テストを試みている作業フォルダを選択 ⇨ 設定画面が出てきますので、Signing&Capaabilitiesを選びましょう。
すると、以下のイメージの①のように、Signing for “アプリ名” requires a development team.とエラーが表示されていることがわかります。このエラーこそが開発チームの設定がされていない上で、実機テストを行おうとした際に表示されてしまうエラーになりますので、早速、開発者チームの設定を行い、エラーを解消していきましょう。
[box class=”green_box” title=”開発者チームの設定の変更”]
設定画面 ⇨ Signing&Capaabilitiesタブ ⇨ Signing ⇨ Team

エラー : AVFAudio(ライブラリ)が読み込めない

チームの設定もしたし…今度こそいけるだろうと! 思い、ビルドをスタート!
…
…

成功した! よっしゃと…思い、実機を見ると…
強制終了!?してしまい、アプリが表示されずに落ちてしまうではないですか!!?泣
悲しんでいる暇はないと思い、エラー内容が表示されているかを確認!
すると..

dyld: Library not loaded: /System/Library/Frameworks/AVFAudio.framework/AVFAudio
というエラーが発生していることを確認しましたが、どうやら必要なライブラリが一部、読み込めなかったようですね。
中々調査は難航しましたが、解決法は至ってシンプルで、全てのライブラリがデフォルト必須になってますので、任意に変更してあげることでOKです。
では、早速、確認していきましょう。
設定画面 ⇨ Build Phasesタブ ⇨ Link Binary With Libraries
Link Binary With Libraries内に多くのライブラリがあることが確認できますが、AVFAudio.frameworkを探しましょう!
恐らくは、以下の画像と同様に真ん中より少し下にあると思います。
見つけられましたら、右端を確認して頂くと、「Required」とあるかと思います。
そこをクリックすると「Optional」の選択ができますので、「Optional」に変更しましょう。
変更ができましたら、再度、ビルドをスタートさせてみてください。
エラーが表示されず、アプリも実機で確認(以下のサンプルはあくまで私が開発したものを確認してますので、あくまで皆さんの実機に表示されるのは、皆さんが 開発して頂いたものをご確認ください。)できたら完璧です。
[ ログ情報 ]
[実機でのアプリの確認 ]
まとめ
⇨ 設定画面より開発チームの設定にて、自身のアカウントを選択
⇨ 同じく設定画面よりAVFAudioの読み込みを任意に切り替える
最後に補足をつけるとすれば、同じ名前はNGですので、アプリ名は毎回、日付を追加するだけでもいいので、変えるように心掛けましょう。
もし、エラーが発生し、名前を変えてくださいと言われましたら、開発チームと同じ場所にありますので、変更してあげましょう。
コメント