iTunes ConnectからApp ビデオプレビューを登録する際のハマりどころ等まとめ
Markdownで手軽にEvernoteへメモできるアプリ、Everkdownのver.1.2を公開しました。
今回のアップデートに伴い、App ビデオプレビューを投稿してみました。
iOS8から実装された、AppStoreでアプリの動画が観られるアレです。
思いのほかいろいろハマったのでメモしておきます。
アプリ動画の撮り方
Macに実機(iPhone、iPad)を接続すれば、QuickTime Playerで簡単に動画を撮影できます。(Yosemite以降)
[ファイル]→[新規ムービー接続]→[表示されたウインドウにて録画マーク横の三角形]→[該当のデバイス] →[録画マーク]でOK。
投稿できる動画の長さは30秒程度までのようなので注意しましょう。
動画のカット編集には、以下のツールなどを使うといいかと。
avidemux プロジェクト日本語トップページ - SourceForge.JP
アップロード
全言語共通です。サイズは別々で、3.5インチには設定不可。
アップロード時のエラー
App ビデオプレビューを保存できませんでした
上記メッセージが表示される場合は、おそらく動画のフォーマットが間違っています。
App ビデオプレビューの処理中です
この処理には最大24時間かかることがあります...だそうですが、私の場合は24時間たっても終わりませんでした。
(この状態でレビューを申請すると不明なエラーが返ってきてしまいます。)
一度ビデオを削除後、再度アップロードすると数分であっさり完了したので、あまり時間がかかるようでしたら再アップロードしたほうがいいかと。
【FireMonkey】Delphi XE7のMessageDlgをXE6以前の仕様で使えるようにする
Delphi XE7からMessageDlgにコールバック関数を渡し、非同期で実行できるようになりました。
参考: FMX.Dialogs.MessageDlg - RAD Studio API Documentation
それはいいんですが、何を思ったか、Androidの場合に限り、従来の同期処理でメッセージダイアログ表示ができなくなりました。
しかもコンパイル時に警告も出ず、実行時にエラーメッセージが表示されるのみ。
Embercadero......いつもながらやってくれるな (#^ω^)ビキビキ
とりあえず個別で対策
その後の処理を全部無名関数に囲んで渡してしまうか、別の関数に切り出せば、とりあえずは動きます。
修正前が以下のソースとするなら
case MessageDlg(Msg, TMsgDlgType.mtInformation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) of mrYes: ShowMessage('yes'); mrNo: ShowMessage('no'); end;
このように修正
MessageDlg(Msg, TMsgDlgType.mtInformation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0, procedure(const AResult: TModalResult) begin case AResult of mrYes: ShowMessage('yes'); mrNo: ShowMessage('no'); end; end )
とはいえ、従来のソースを全部このように修正するのはかなり大変です。
XE6以前と互換の関数を作って置き換える
ということで、作りました。
FireMonkey/FMX.Dialogs.Wait.pas at master · vamview/FireMonkey · GitHub
これをusesに追加し、既存のMessageDlgをMessageDlgWaitに置き換えるだけ。
case MessageDlgWait(Msg, TMsgDlgType.mtInformation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) of mrYes: ShowMessage('yes'); mrNo: ShowMessage('no'); end;
【Objective-C】NSStringをASCIIコードで指定
CRLF (0xd + 0xa) = @"\r\n"とか、ポピュラーなエスケープシーケンスが用意されているものはいいのですが、もっとマイナーなASCIIコードの制御文字を入力or指定したい場合の処理。
stringWithFormatでいけました。
NSString *bs = [NSString stringWithFormat:@"%c", 0x8];
こんな感じ。
上記を実行した結果、0x8には@"\b"というエスケープシーケンスが用意されていることが判明し若干ショックを受けているのですが...それはそれということで。
おそらくSwiftでも同様の方法で可能だと思います。