http://startup-objc.blogspot.jp/2013/05/udidinvalid-binary.html
これが、AdMobライブラリに非があるのか、Appleの検査モジュールが誤検知したのかわかりませんが、広告を非表示にするという事でアップしました。
(元々広告収入を目的とするアプリでは無かったため。)
今回、アプリを更新する事案がありましたので、再度広告表示に挑戦しました。
一番の疑わしきはAdMob。
ライブラリのページを見てみると。。。
https://developers.google.com/mobile-ads-sdk/download
バージョン上がってるやないかい!
前回は6.4.1だったのが6.4.2、やっぱりこれか・・・
新しいのをダウンロード&展開して、組み込み!
クリーン&アーカイブしてアップ!
だめか・・・
こういう時はstackoverflowに助けを求める
http://stackoverflow.com/questions/16409966/app-rejected-but-i-dont-use-udid
ibGoogleAnalytics_debug.a が含まれていて、悪さをしているとの事。
罠かよ・・・
ターミナルで以下を実行して、バイナリ内で利用している箇所を探せとあったので、実行してみたところ。
find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep uniqueIdentifier
確かにある。これだな。削除。
再度、クリーン&アーカイブしてアップ!
だめだな・・・
もしかしてと思いプロジェクトファイルを開く。エディタで。
思った通りや・・・
ライブラリ更新の度にディレクトリ作って追加していったから、
検索パスがその度に増えていました・・・
プロジェクトファイルからの直削除はこわかったので、
xcodeから削除。
※画像は勢い余って消してしまった後のものです。
再度、クリーン&アーカイブしてアップ!
。。。成功やー!
結局、何が原因かというと、検索パス内に以前のライブラリへのパスが残っていた事が原因。
xcode内で、視覚的にファイルを消したとしても、検索パスには残る。
再度、別のファイルを追加してバージョンアップしている風にはxcode上は見えるんだけど、実際には「検索パスが新たに追加される」ことと「ファイル名単位のファイルパス」が追加されるようです。
そのため、検索パスの最初にあるAdmobの6.2.1の「同名ファイル」が選択されてAppleに弾かれていた模様。。。
もちろん、ibGoogleAnalytics_debug.aのファイルを消した事も影響しているかも知れないけど、検証しなおす余力がありません。
最終的なまとめとしては、検索パスをチェック。
なお、こういう目に遭うのは、ライブラリをバージョン別に分けて管理したがる僕みたいなタイプの人間で、ライブラリを上書き更新かけるタイプの方は、問題ない模様。
(twitterとか見たけど、みんな普通に出来ているしね。。。)
0 件のコメント:
コメントを投稿