2013年5月9日 星期四

Invalid binary (uniqueIdentifier)

這兩天送審新的 App 被 Apple 以我有呼叫非法的 API 而 rejected。

隨後又寄了封信告訴我是不可以使用 UDID,但我本身的 Code 早就已經全改成 UUID 囉。

所以應該是第三方的套件造成的問題。

有這個問題的捧友可以打開 terminal 切到專案目錄下執行 grep -Rnis 'uniqueIdentifier' *

這會列出所有包含 uniqueIdentifier 關鍵字的檔案。

以我的例子來說他會告訴我在 libadon.a 裡發現關鍵字,這是國內廣告商 VPon 的檔案。

我隨即去電詢問 Vpon,但他們一再跟我保證他們的 SDK 沒有問題,他們已經將相關的程式註解掉了。

但是問題還是沒解決,只好反覆再交叉測試,最後發現原來是 ADMOB 搞得鬼。

但令我耐悶的是 grep 並沒有回我 admob 裡有這個關鍵字,以致於我一開始方向就錯了。

把 Admob 的 SDK 從 6.2.1 更新到 6.4.1 就沒問題了。

但這裡要注意的是,若你把 6.2.1 檔案砍掉重新加入 6.4.1 還是沒解決問題的話。

請到 target -> build setting 搜尋 search paths ,再找到 library search paths 把裡面所有舊的 6.2.1 的路徑全都刪了,應該就可以了。

為了解這問題花了我一個早上呀。。。希望有幫到各位



參考網址

http://stackoverflow.com/questions/16409966/app-rejected-but-i-dont-use-udid

https://groups.google.com/forum/?fromgroups=#!topic/google-admob-ads-sdk/G7zIDyRTnJs