2017年10月7日土曜日

vol.485 Xcodeバージョンアップで問題発生

・新たに、iPhoneのラインナップに8/8 PlusとXが加わったことにより、Xcodeもバージョンアップしました。
これにより、8/8 PlusとXのシミュレータを動作させることができるようになります。

しかし、これだけではなく、iOSアプリを開発する時に使用する、Swift言語もバージョンアップされていました。
で、これで何が問題かというと、Swiftの古いバージョンの設定を使用していたアプリ(プロジェクト)をそのまま使用すると、エラーとなります。
もちろん、解決策はあるのですが、私の場合ドツボにはまりました。
そして、今もまだ未解決の状態。

何かと言うと、モバイル用データベースとしてRealmというデータベースを導入しているのですが、このRealmを使っているソースで問題が発生。
古いバージョンである、3.1を使っており、新しいXcodeでは3.2か4.0しか使えません。
先にも言った通り、解決策があるので大抵はそれでなんとかなるのですが、私の場合はそれではなんとかならず。
やり方の問題だろうと思うのですが、未だにエラーが消えません。

要はRealmを使うに当たり、同じくSwiftを使用するのですが、通常RealmはRealmのライブラリに含まれている、Swiftを使おうとします。
Realmのライブラリに含まれている、Swiftのバージョンは最新で3.1。
当然ながらそのままではエラーとなってしまいます。
なので、プロジェクト内では、ライブラリに含まれているSwiftではなく、ローカル、つまりXcodeに含まれているSwiftでビルドをすればよいわけです。

原因と解決策はわかりましたが、じゃあ、その解決策を実現するにはどのような手順を踏めばよいのか。
これももちろん、ネットに情報はあったので、試してみましたがエラーは消えず。
最初、Carthageでの解決策みたいなのがやたらと載っていたのですが、Carthageを導入するところから始めなければならず、スルーしていました。

しかし、一向に解決する兆しが見えないため、仕方なく、Carthageを導入することに。
意外と導入は簡単だったので、最初から素直に入れとけばよかったなぁーとブツブツ呟きながら、Realmのライブラリを入れ直してみたが、やっぱりダメ。

挙句の果てには、Carthageを一度入れ直してやってみたものの、変わらず。
正直、途方にくれています。

ただ、若干手順が参考にしているサイトと異なっていたような気もするので、もう一回、Carthageを導入し直して、挑戦してみようと思います。
上手くいきましたら、情報共有という意味も含めて、記事にしようと思ってます。

0 件のコメント:

コメントを投稿