追記 2018/06/27
長いこと「ツイキャス Apple TV」でgoogle検索一位を誇ってた当記事ですが
無事watchbeという名前で、ツイキャスが見られるApple TV用アプリをリリースできましたことを報告いたします。
https://itunes.apple.com/us/app/watchbe/id1206428382?l=ja&ls=1&mt=8
はじめに
この度Apple TVなるものを購入しました。
で早速ストアを見回したところ、どうやらツイキャスを見るためのアプリがないようです。
http://twitcasting.tv
アプリがないのであれば作ってしまえばいいの精神でアプリ作成及びリリースまでしてしまおうと思い立ちました。
開発
幸いながらツイキャスはAPIが公開されております。
http://apiv2-doc.twitcasting.tv
なので、これを元に開発をしてしまえばいい。
ということで、動画選択画面をTVホーム画面?っぽくするためにUICollectionViewControllerで、
Cellが選択されたら動画を再生するためにAVPlayerViewControllerを表示して再生するシンプルなアプリを作成しました。
見られる見られる。
いざリリース
tvOSアプリが完成しましたのでリリースの申請を行おうと思いました。
しかし、オーガナイザからアプリをアップロードしようとしたら怒られる怒られる。
-
Bitcode必須
iOSアプリはBitcode必須ではないですが、tvOSアプリは必須です。
cocoapodsなどで外部ライブラリを入れていると起きる問題です。
外部ライブラリ対応状況を確認しましょう。 -
Top Shelf Image/Top Shelf Image Wide
いわゆるiOSではアイコンに当たるものという理解です。
これが両方設定されていないとアップロード時に怒られます。
サイズについての公式な文献が見つからなかったのですが(知っている人教えてください)
以下のサイズでアップロードが通りました。
種別 | サイズ |
---|---|
Top Shelf Image | 1920 × 720 |
Top Shelf Image Wide | 2320 × 720 |
審査
数々の苦難を乗り越え審査までこぎつけました。
そうすると問題解決センターに以下の理由でのリジェクトが届いていました。
1. 2 SAFETY: USER GENERATED CONTENT
日本語版のリンクだとこちらの理由で引っかかってます。
https://developer.apple.com/app-store/review/guidelines/jp/#user-generated-content
具体的には、以下の策を講じていないとダメだぞ、っというものでした。
- ユーザーが利用規約(EULA)に同意することを要求する。これらの条件は、好ましくないコンテンツや不正なユーザーに対しては許容範囲がないことを明確にしなければならない
- 好ましくないコンテンツをフィルタリングする方法を設ける
- ユーザーが不快なコンテンツにフラグを立てる仕組みを設ける
- ユーザーが不正なユーザーをブロックする仕組みを設ける
- 開発者は、コンテンツを削除し、問題のコンテンツを提供したユーザーを取り出すことによって、好ましくないコンテンツレポートを24時間以内に処理しなければならない
厳しい。
EULAは用意をすればいいし、
フィルタリングとかコンテンツにフラグを設けるとかユーザーのブロックはプログラム的には可能かと思いますが、
アプリとしてはツイキャスのAPI経由でコンテンツを表示しているただのクライアントアプリなので、
24時間以内にレポート処理とかコンテンツ削除はサービス提供者でなければ不可能です。
ということで
せっかくTVでツイキャスが見られるのに使えないのはもったいないので、
せめてソースコードでも公開しようかと思いました。
https://github.com/coe/twicastv
APIキー取得後、
TwicasApi.swiftのYOUR_CLINET_IDとYOUR_TWICAS_CLIENT_SECRETに埋めてもらって、
こちらをUSB-C経由でApple TV接続してビルドしてもらえればアプリの使用が可能です。
思ったこと
1.2の規約が、とある時点で加わったことは知っていたんですが、クライアントアプリに適応されるときついですね。
Twitterクライアントとかもきつくなりそう。
あっちは通報APIがあるから、それで回避できるんだろうか。