LoginSignup
3
4

More than 5 years have passed since last update.

UIActivityViewControllerを使ってTwitterへ画像が投稿できない症状

Last updated at Posted at 2016-03-23

が起きているようです。ただし大多数のアプリは問題無く動作しているはずです。

2016/05/19追記

Twitter バージョン6.53.1、iOS 9.3.1 環境にて無事に動作する事を確認しました。
(やはりTwitterアプリ側の問題だったのではないかと思われます)

再現コード

single viewプロジェクト作成、test.pngをプロジェクトに突っ込んであります。

import UIKit

class ViewController: UIViewController {
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        guard let path = NSBundle.mainBundle().pathForResource("test", ofType: "png") else { return }
        let url = NSURL(fileURLWithPath: path)
        let vc = UIActivityViewController(activityItems: [url, "あいうえおかきくけこさしすせそたちつてと"], applicationActivities: nil)
        presentViewController(vc, animated: true, completion: nil)
    }
}

実行結果

投稿画面は正しく出ますが

Screen Shot 2016-03-23 at 16.35.45.png

Twitterアプリへ行くと...

Screen Shot 2016-03-23 at 16.37.02.png

下書きを見に行くと、パスが本文に入っちゃって文字数オーバーし、投稿にしくじっている事がわかります。

Screen Shot 2016-03-23 at 16.37.22.png

考察

画像パスからNSURLオブジェクトを生成し、そいつをUIActivityViewControllerに渡すと、2016年3月23日現在(Twitter バージョン6.49, iOS9.3)このような症状が起こるようです(*以前はこのようなことはありませんでした)。

中の仕組みがどうなっているかは判りませんが、おそらくTwitter公式アプリの方でNSURLの情報をうまくさばけない不具合が起きているのではないかと推測しています(というかそうであってほしい)。

ちなみにUIImageを直で渡している場合は特に問題は起きていませんので、大多数のアプリは影響を受けていないと思われます。
自分のアプリはどうしてもPNGやGIFといった素のバイナリデータを共有したかったためにこのような問題に当たりました。

Twitterの開発者サイトのフォーラムにも同じ報告が挙がっていたので、しばらくは様子を見るしかなさそうです。
https://twittercommunity.com/t/bug-in-ios-twitter-app-when-sharing-images-as-nsurl-with-uiactivityviewcontroller/63252

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4