kubou.dev();

好きな言葉は一石二鳥

Xcode8でビルドされていたアプリを引き継いだら、Xcode10でビルドできない、、対応した内容

Xcode8をインストールしようとしたら、macOS10.14ではサポートされておらず起動すらできない、、、

仕方ないのでXcode10でビルドしようとするもエラーが出てしまうので対応。そのメモ。

Podの内容が古い

FacebookSDKのバージョンが0.2.0で使用されていたが、ビルドしてみるとエラーになる。
 →0.5.0にしたらエラーは消えた。
Podsにあるライブラリを最新にしたら、FacebookSDKのエラーが消えたけど、他のライブラリでエラーがでた。
引き継いだpodsfile.lockからバージョンを探し、そのバージョンをPodsに指定してインストール
FacebookSDKだけは0.5.0にした。
参考)https://stackoverflow.com/questions/50724936/xcode-10-fbsdk-sdkloggingbehavior

Facebookログイン部分でエラー

こんな感じにした。

loginManager.logIn(readPermissions: [.publicProfile, .email], viewController: self) { result in

参考)https://stackoverflow.com/questions/39713490/facebook-swift-sdk-loginmanager-type-of-expression-is-ambiguous-error

計算式が複雑だとエラーになるらしい、、

計算式を分割してクリア。

// 長いからエラー
categoryCollectionView.contentOffset.x = 160.0 * (CGFloat(categories.count + 1) * 2 + dxRatio) - width / 2 + 80
    
// 分割するとOK
categoryCollectionView.contentOffset.x = 160.0 * (CGFloat(categories.count + 1) * 2 + dxRatio)                    
categoryCollectionView.contentOffset.x = categoryCollectionView.contentOffset.x - width / 2 + 80

参考)https://stackoverflow.com/questions/25569373/swift-compound-arithmetic-operation-error

UITabBarがiPhone8だと正しく表示されるが、iPhoneX以降だとずれてしまう

ストーリーボードと紐づいてる.swiftファイルの中からUITabBarを定義しているところを探して

// 高さが固定されとる、、、、
var size = super.sizeThatFits(size)
size.height = 40
    
// 上記はコメントアウトして、こっちにする
invalidateIntrinsicContentSize()

を呼んであげる。