はじめに
これは遠い昔に書くはずだった dots.女子部 Advent Calendar 2016 の23日目の記事にします!
みんな書いてなくて本当にごめんなさい!
PHP一筋のサーバーサイドエンジニアだった私が
最近swiftデビューしてiOSアプリを作っているのでその過程でできたメモを公開します。
今回はfacebookログインを実装した話。
Cocoadodsを使えるようにする
http://qiita.com/fksk/items/9e5fdc201af4f03f2dec
↑を見て作業
##Podfile
swift用FBSDKを利用する
https://developers.facebook.com/docs/swift/getting-started
use_frameworks!
target 'my_ios' do
pod 'FacebookCore'
pod 'FacebookLogin'
end
※CocoaPods使うときは<プロジェクト名>.xcworkspaceから開いて編集しないといけない
↑気付かずそのままxcodeprojファイルから開いて編集してたらライブラリが認識されなかった
FacebookにiOS用アプリを作成しいてログイン機能を実装
普通にFacebook for Developersのページからアプリを作成
アプリメニューの設定→ベーシックのiOS欄
バンドルIDをいれておく(xcodeで確認)
【クイックスタート】を見ながら設定していくyo
Track App Installs and App Opens
がObjective-Cでつらい・・と思ってぐぐったらswiftのコード出てきました。ありがとうございます。
http://studyswift.blogspot.jp/2016/01/facebook-sdk-and-swift-create-facebook.html
(Objective-Cも学んでおかないと今後こういうことあったときつらたん・・・)
Thread 1:signal SIGABRTのエラー
AppDelegate.swiftのclass宣言のところでThread 1:signal SIGABRT
という謎のエラー・・
ぐぐったらシュミレーターを再起動ってでてきました。
https://wayohoo.com/mac/apps/developer-tools/iphone-strange-error-when-testing-on-simulator.html
再起動。
消えません。
↑の記事の人も消えていませんでしたので、同じようにMacを再起動。
なんか直らない・・
エラーを見たらFacebookAppID設定してないよと出ていた(エラー内容を残しておくのを忘れた)
「なんでよ!さっき.plistで指定したはずだもん!」
と思ったら.plist違いをしていた。
プロジェクト配下の.plistに追記するべきところを、Podsディレクトリ配下の.plistに追記していた
ので、プロジェクト配下の.plistに修正してあげたら無事動きました
Pods配下の.plistって何なのよ
Pods配下の.plistと書いたけど実際は↓
Pods
┣ Target Support Files
┗ Pots-my_ios
┣ *Info.plist* <- コレ
┣ fugafuga...
┣ hogehoge...
Pods配下のものはCocoaPodsが使うものだから、アプリで使う設定はプロジェクトは以下の.plistに書きましょう。
カスタムのログインボタンを設置するよ
Custom Login Button
に沿って設置
※ドキュメントの誤り
myLoginTitle.setTitle("My Login Button" forState: .Normal)
は
myLoginButton.setTitle("My Login Button" forState: .Normal)
に読み替え
おしまい
ドキュメントを色々読み込んで実装しました
アドベントカレンダーとは別に私のiOS開発過程メモを今後もリリース予定です。