2018年8月4日土曜日

TwitterKitが変更された

気づいたらTwitterKitが3.4.0にアップデートされていた。公式サイト
^ <>\|`など、一部の文字がツイートできない問題も解決しているらしいので、さっそくインストールした。(後述するが、\ (バックスラッシュ)だけはいまだツイートできなかった)

Frameworkをインストール



公式サイトに書かれた通りにやる。
  1. TwitterKit.frameworkをEmbedded Binariesに追加
  2. TwitterKit.frameworkとTwitterCore.frameworkをLinked Frameworks and Librariesに追加
とある。
しかし1.ですでにTwitterKit.frameworkはLinked Frameworks and Librariesにも自動で追加されるているので、TwitterCore.frameworkだけでいいと思われる……と思ってあらためてLinked 〜 に追加しなかったところ、AppStoreに提出する前のValidate...時に以下のエラーが出て悩むことになった。
1.のEmbedded 〜 への追加はしてもしなくても良くて、2.のLinked 〜 にTwitterKitを追加してやったら直った。注意が必要だ。

TwitterKitResources.bundleも必要



公式サイトに書かれてないけど、TwitterKitのフォルダに入ってるTwitterKitResources.bundleというエイリアスファイルもそのままAdd Files to プロジェクト名 してやらないといけない。

bridging headerが必要

これまではSwiftではふつーに
import TwitterKit
としておけば良かったが、Objective-C用しか用意されていないらしく、Objective-C bridging headerを作らねばいけなくなった。
作り方はObjective-CとSwiftのコードを混在させる方法を調べてもらうとして、その中で
#import <TwitterKit/TWTRKit.h>
としなければならない。

Twitter --> TWTRTwitterに書き換える

Twitter.sharedInstance().application(app, open: url, options: options)
などと書いていたののTwitterの部分をTWTRTwitterと書き換える必要がある。
まあこれは簡単。

Linker Errorが出る


ここまでで完璧と思ってさっそくビルドしてみたところ、Apple Mach-O Linker (ld) Errorなどというエラーが出てしまった。
必要なFrameworkがインストールされていないか、必要ファイルへのpathが狂っているなどの場合に出るらしい。

MKMapViewとかMKMapView、_kUTTypeImageなどというメッセージからMapKit.frameworkとMobileCoreServices.frameworkが必要と判断して追加したら消えてくれた。
そんなことどこに書かれてんだよ。ツイッター、この野郎。

とりあえずビルドできるようになったのは幸い。

バックスラッシュだけはまだ送信できない

上述の通り、^ < >など一部の文字が含まれているとツイートできない問題は直っていたが、\(バックスラッシュ)だけはいまだツイートできなかった。
\(^o^)/ などというように顔文字で使われることがあるから早く直してくれないと困るな。制御文字を扱う際のprefixに使われてるせいじゃないかと思うが、ツイッター公式アプリやWeb版のツイッターじゃ問題ないんだからツイッター社の怠慢。

0 件のコメント:

コメントを投稿