頭と尻尾はくれてやる!

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


iOSアプリが「バイナリが無効」でApp Store Connectにuploadできない

わざタイプ相性表 for ポケモンGO
↑このアプリのアップデートを申請しようとした時の話。初めて見るケースなのでメモ。


修正版(ver1.2)をXcodeでarchiveしてvalidation通した後にuploadした(Xcode上ではuploadはできてるように表示される)。
通常ならApp Store Connectでそのファイルが見えて「処理中」とかになってたりするのだが、、、

App Store Connectアプリの通知

↑なぜかiPhoneのApp Store Connectアプリから
ビルドステータスが”バイナリが無効”に変更されました
という通知が来た。
App Store Connectのページにはいくら待っても修正版のファイルは表示されない。

App Store Connect側の問題かなあ?よくあるよなあ?と思って同じファイルを再度uploadしようとしたが、

警告内容

↑Xcodeが「そのバージョンすでにあるから変えて」と。
なのでver1.2.1でarchiveしたのをuploadしたけど同じくバイナリが無効、でuploadできなかった。

ここでネットで調べたらメールに情報が記載されてるというのを見て、そうだっけ?と思いメールを確認すると、確かに詳細が書かれたメールが届いてた。

ITMS-90713: Missing Info.plist value - A value for the Info.plist key 'CFBundleIconName' is missing in the bundle ‘xxx.Clip'. Apps built with iOS 11 or later SDK must supply app icons in an asset catalog and must also provide a value for this Info.plist key. For more information see http://(略)

App Clip側のCFBundleIconNameがない、、、?
ちなみにこのアプリ、App Clipが登場した時に試してみよう!と思って勢いでApp Clipを実装したんだわ。そのアイコンがないってこと、、、?このアプリ今までに何回もアップデートしてたのに何を今更、、、?そもそもApp Clipにアイコンなんて必要なんだっけ?
と思いつつとりあえずApp Clipのアセットにアイコン画像を置いた(メインのアセットと同じ画像ファイルを並べただけだ)。

この状態でarchive, validation通してuploadすると、、、無事申請できた!

ところが、だ。その日の夜にリジェクトされた。

ガイドライン2.5.16違反。内容はApp Clipがemptyとか。
え?アイコンだけじゃなくてすっからかんだと?何も変えてないぞ?

targetの設定には問題なさそうだし、、、archive時のschemeの設定がおかしくなってるのか、、、?
さらに調べるのも面倒だし、、、App Clipなんて誰も使わないし、、、

App Clipを消そう!

ということでXcodeでApp Clip用のtargetを削除、関連のschemeも削除。entitlementsのファイル内にApp Clipに関連する記述があったので削除。
そして再度archive, validation, upload。申請したらその日の夜に審査をパスしてた。


メールに必要な情報が書かれてることがあるってのは覚えておかねば、、、でも内心そんな重大な問題はarchive時かvalidationで教えてくれよ!とも思う。
スポンサーサイト






Xcodeで画像ファイルの削除ができない?!

あるXcodeのプロジェクト内にある画像ファイル(なのでAssets.xcassetsにある)を削除しようとすると
警告:The file doesn’t exist
The file xxx doesn’t exist.
と表示されて消しても消しても元に戻ってしまう、という不可解な現象が発生した。
プロジェクトを再loadしたり、Xcodeを再起動したり、Macを再起動したりdeprived dataのファイルを消したりしてもダメ、、、

Finderでその画像ファイルあたりを見るとContents.jsonってファイルがあってどうもXcodeはこれと整合性がとれないと嫌がるようなので、このjsonファイルを自分で修正したらXcodeの方もおとなしくなった。
でもまあ多分、ウチのXcodeがおかしいんだろうな、、、


GitHubからXcodeのプロジェクトをクローンする

GitHubに置いてるXcodeのプロジェクトをあるフォルダーに持ってくる必要が生じた。

確かこういう時にターミナルからcloneってやればよかったんだっけ?と調べそのまま
git clone https://github.com/xxx/yyy.git とか
git clone git@github.com:xxx/yyy.git とか
やったけどパスワードじゃなくpersonal access token使えとかpublic SSH keysねえぞとか、、、
なんか面倒だなあ、1つずつファイルをコピペするか?とか考えたんだが、、、

GitHubのスクショ

↑Cloneの下にOpen with Xcodeなんてあるやん!
試したら希望のフォルダにプロジェクトができたんよ!
おおお!素晴らしい!と思ったのも束の間。
これ、ファイルを修正してもremoteにpushできない。
俺がしたいのはこれじゃない。

ということでさらに調べると
【Xcode】新規プロジェクトを作成する方法とGitHubからクローンを作成する方法について | harublog
↑こういう方法があったのね、、、
ということで無事、新フォルダにまるっとXcodeのプロジェクトを作成できて、修正後にちゃんとremoteにpushもできました。ふう、、、

一人作業なのでGitなんて不要かな?自己満足やな、と思いつつ使ってきたけど、初めて役に立った気がする。


iOSアプリ「わざタイプ相性表」ver1.0.6が審査通過

iOSアプリ「わざタイプ相性表」というポケモンGOでわざとタイプの相性を調べるアプリのアップデート版の申請が通過した。
実は結構ほったらかしで久々にポケモンのデータを追加した。
フーパ(ときはなたれしすがた)まである。
表示した例↓

わざタイプ相性表のスクショ


おまけ1
申請時にデータを追加しただけなのに
Guideline 5.1.2 - Legal - Privacy - Data Use and Sharing
での違反でリジェクトされてしまった。
例のトラッキング許可うんぬんの話だ。アプリは無料でAdMobの広告を表示しているのでそれ相応のデータを収集する、とApp Store Connectで入力したのにアプリが全く対応していなかったのだ。

App Tracking Transparency | Apple Developer Documentation
iOS14でエンジニアがすべきIDFA対応 - Qiita
↑この辺りを参考に修正して申請したら通過した。


おまけ2
今回は申請してすぐセルフリジェクト、その後再度申請してリジェクト、さらに修正して申請→通過、という流れだったんだけど、ずっとバージョンの番号は1.0.6でやってた。
知ってる人には当たり前なんだろうが、実は今までリジェクトされたら番号を変えて申請してた。
でも試しに同じ番号でarchiveしてuploadするとApp Store Connectで

App Store Connectの画面

↑このように別物として表示されてた。あー、別に番号変える必要なかったんだな、と気付いた次第。


MacのQuickTime Playerで音声も収録したい

MacでマインクラフトをプレイしてるところをQuickTime Playerで録画する、というのはよくやるのだが通常だと音声は記録できない。どうしたものかと調べるとこういう方法があるらしい↓
Macで画面収録時にMac内の音をステレオで録音する方法 | hayase.tvブログ
こちらを参考にSoundflowerというのをダウンロード↓
Release Signed Version for macOS Big Sur (11.1) and earlier · mattingalls/Soundflower

セキュリティーの都合で簡単にインストールさせてくれないかも。

使う時は以下のような感じで。
1)Macのサウンドの出力をSoundflower(2ch)に設定
2)QuickTime Playerの録画開始時のオプションもSoundflower(2ch)に設定
3)録画する

で、作成された動画を確認したら音が全然聞こえへんやーん?!
と思ったら出力先をSoundflowerにしてたからで、元のに戻したらちゃんと(私の場合は)イヤホンから聞こえた。


↑こんな感じにちゃんと音付きで録画できた。



version
macOS Big Sur 11.6
Soundflower 2.02b




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