頭と尻尾はくれてやる!

iOSアプリなどの開発日記です


申請したmacOSアプリがAccurate Metadata違反でリジェクト

アプリのリジェクト時に添付されてるipsファイルを読み解く
↑この続きです。アプリ内課金の商品データのIDを変更して申請したところ、、、また別件でリジェクトでした。起動時にクラッシュではなかったので一歩前進ではあります。

今回は
Guideline 2.3.2 - Performance - Accurate Metadata
で引っかかってリジェクトされました。
指摘されたのは、アプリ内課金について詳細がよくわからないので、アプリの説明文に適切に記述して下さい、というものでした。
指摘内容はわかったのですが、さてこの場合アプリ本体はこのままで申請できるのだろうか、、、?

試しにアプリの説明文を修正して、アプリ本体はそのままで、申請を進めていくと、、、申請できました!
そういうものなのですね。

なお、この申請で無事アプリはリリースとなりました!アプリ名にAppPreviewって含まれてていいんかなあ?と思ってましたが問題なかったようで。

自作アプリのアイコン

↑Mac App Storeから自身初のmacOSアプリをダウンロード、Xcodeの隣に置いて記念スクショ。
スポンサーサイト






アプリのリジェクト時に添付されてるipsファイルを読み解く

macOSアプリ「AppPreview Editor」をリリースしました
↑この続きです。Invalid Binaryが出なくなて審査に入ってくれたのですが、別件でリジェクトされました。
Guideline 2.1 - Performanceでアウト、アプリ起動時に落ちるよ!というなんとも悲しい内容でした。
このような場合、crash reportから原因を調べる必要があります。

symbolicateしてcrash logからどこでcrashしたか調べる
↑以前はこのようにして調べていたのですが、なぜかdSYMファイルへのリンクがない、、、そして審査担当者からのメッセージ(App Store Connect内)の下の方にxxx.ipsというファイルが添付されてる。

え?これでどうすんの?と困っていろいろ調べたり試行錯誤したのですが、結果から言うと
inket/MacSymbolicator: Symbolicating macOS/iOS crash reports, easily.
↑このMacSymbolicatorという神アプリを使いました。
これを起動して添付されてたipsファイルをドラッグ&ドロップし、symbolizeするだけ。
これで普段見るエラーメッセージのようなのが表示されます。つまり、どこで、何が原因で落ちたか、というのが推測できます。
以前のようにターミナルから呪文を唱える必要はありません。ほんと、神アプリです。

ちなみに、どこで落ちてるのかを調べてたところ、起動時にアプリ内課金用の商品データを読み込むのがうまくいっていないことがわかったのはいいのですが、当方の環境ではクラッシュは再現しません、、、仕方ないので商品のIDを変更(App Store Connectもアプリも)して申請したところ、起動時に落ちてリジェクト、というのはなくなりました。



なお、dSYMじゃなくてipsになっているのかは仕様変更なのか、iOSとmacOSの違いなのかは私は知りません。


申請したアプリがInvalid Binaryでリジェクト

macOSアプリ「AppPreview Editor」をリリースしました
↑このmacOSアプリ、審査通過まで何度かリジェクトされました。
1番最初のリジェクトはWaiting for Reviewから1分後にInvalid Binaryになったことでした。
つまり、審査に入っていませんのでリジェクトされた、と言うのが正確なのかよくわかりませんが。
時間からしても機械的に処理されたんだと思いますが、だったらvalidationで落とすなり、申請完了までに教えてくれてもええやん!
とか思うのですがそうもいかないんでしょうねえ。

なお、Invalid Binaryだ!というメールに不具合の内容が英文で長々と記述されていたのですが、
3rd Party Mac Developer Installer’ certificateとか
Invalid Signatureとか
App sandbox not enabledとか、、、
あああ、macOSアプリに手を出すんじゃなかった、、、
と思わせるに十分な内容でした。そもそもmacOSアプリの開発や申請に関する情報が少ないですもんね。

そうは言ってもやらないわけにはいかないのでいろいろ調べたのですが、結局Xcode上のsigningを手動にして自分で設定(validationやupload時も手動で設定することになる)して再度申請したところ、Invalid Binaryはなくなりました。


macOSアプリ「AppPreview Editor」をリリースしました

AppPreview Editorのアイコン

AppPreview Editor

AppPreview Editorのスクリーンショット

操作が簡単な動画編集用のmacアプリです。
その名の通りiOSアプリの紹介用ビデオであるAppプレビューを作成するためのmacアプリです。

アプリ申請時にApp Store Connectに提出するAppプレビューはサイズやフレームレートや音声などにきっちりと規格があるので、これを外すと正常にアップロードできません。その規格に合うような動画を出力します。

無料アプリですが出力された動画に無駄にロゴが入っていますが、有料でこれを削除できるようになっています。



以下開発関連の雑談です。
そもそもiMovieでテキストが楽に編集できればいいのですが、なんとも微妙なのでなんとかならないかなあという思いからこのアプリを作りました。
自身初のmacOSアプリなので、とにかくリリースすることを目標にしていましたので、今後いくつか機能追加する予定です。
アプリ名にAppPreviewと入れてたのでAppleに怒られるのかな?と思ったけど無事審査通過してよかったです。


CABasicAnimationのopacityがアニメーションしてくれない

CALayerのアニメーションでopacityを0から1にして1から0にする、みたいなことをしようとしたのですが、恐ろしくハマってしまいました。

CABasicAnimationを使うとできそうなのですが、、、
let animation = CABasicAnimation(keyPath: "opacity") 
animation.fromValue = 0
animation.toValue = 1
↑リファレンスにはこれだけ書いてるのですが、、、これが全く動作しない。
調べるとNSNumber使えとかまあいろいろ見つかるのですが、何をやっても動作しない。

ようやく辿り着いたのが
animation.isRemovedOnCompletion = false
を追加しておくと動くようになった、、、!
リファレンスを読む限りそうなの?って感じがするが、、、

あと、fillModeプロパティも用途に応じて適切に設定しとかないといけない。これは納得できるけど。


なお、今回のはiMovieみたいな動画編集アプリ作成時、つまり動画の上に画像を乗せる場合での処理なのでその辺りが特殊だったのかもしれない。
iOSで動画の上に画像を載せて回転アニメーションさせる方法 - Qiita
↑なんで動画に画像乗せるのにCALayerを使うかはこちらを参考にしたからです。



↑位置や時間はともかくやっとopacityの値が変わってくれた〜!というツイート。




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.