本日、提出に関するフィードバックを受け取りましたが、報告された問題を理解していません:「アプリはUDIDへのアクセスを許可されていないため、UIDeviceのuniqueIdentifierメソッドを使用しないでください。 iOS 6で導入された識別子。」.
私たちはudidに関する拒否について知っていますが、私たちのアプリはこれを使用しません!これを読んだ後、私たちのチームはアプリを再評価しましたが、「UIDevice uniqueIdentifier」からの出現は見つかりませんでした。また、使用されているすべてのライブラリを改訂しましたが、実際にはUDIDからの呼び出しは見つかりません。
誰かアイデアがありますか?
調査後、「greap」コマンドを実行し、FacebookSDKについて疑っています。
my-app-directory $ grep -Rnis 'uniqueIdentifier' *
Binary file MyApp/FacebookSDK.framework/FacebookSDK matches
Binary file MyApp/FacebookSDK.framework/Versions/A/FacebookSDK matches
Binary file MyApp/FacebookSDK.framework/Versions/Current/FacebookSDK matches
Binary file MyApp/MyApp.xcodeproj/project.xcworkspace/xcuserdata/myuser.xcuserdatad/UserInterfaceState.xcuserstate matches
FacebookSDKはuniqueIdentifierを使用しますか?解像度は?
私の場合、それはibGoogleAnalytics_debug.aライブラリでした。
Uniqueidentifierメソッドを使用しているライブラリを見つけるには、プロジェクトフォルダーに移動して以下を入力します。
$ find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep uniqueIdentifier
私はこれを得ました:バイナリファイル./My_Project/libGoogleAnalytics_debug.aは一致します
解決済み:問題は、プロジェクトがまだ古いSDKを参照しており、Apple拒否するUDIDを含む古いSDKメソッドを使用してコードをコンパイルすることです。
SEARCH PATH Frameworkのビルドプロパティで修正してくださいSearch Paths Library Search Paths
古いSDKパスなどの不要な値を削除し、現在のSDKパスをそこに配置する
すべてのプロジェクトのファイルを消去します:ウィンドウ->オーガナイザー->プロジェクト-プロジェクトを削除します製品->消去
再構築して、Appleに再送信します。
楽しい :)
strings
コマンドで生成したバイナリを確認し、uniqueIdentifier
を探します。
$ strings YOUR_BINARY | grep uniqueIdentifier
おそらくそこにあるでしょう。
OpenSSLのヘッダーにはuniqueIdentifier
という文字列が宣言されているため、アプリケーション(またはアプリで提供する静的ライブラリ)に含まれている可能性があります。
私の場合、犯人はlibspotify
でした。
私は同じ問題を抱えていましたが、プロジェクトフォルダー内のターミナルで次のコマンドを使用して、uniqueIdentifier
を含むファイルを特定できました。
grep -Rnis 'uniqueIdentifier' *
これにより、端末ウィンドウに多数の行がエコーされました。犯人はlibGoogleAdModAds.aです-実際には使用していませんでしたが私のコード、それはまだ私のプロジェクトで参照されていたため、ビルドに追加されました。
私の場合、この問題の原因はBugSense SDKでした(古いバージョンを使用しました)。最新バージョン(3.1.3)にアップグレードした後は、すべて問題ありません。
Facebookにバグを報告しましたが、次善策があります。
https://developers.facebook.com/bugs/193119420841692
SDKで、facebook-ios-sdk/src/FBSession.mを編集します
コメントアウト
- (BOOL)isMultitaskingSupported {
/*
UIDevice *device = [UIDevice currentDevice];
return [device respondsToSelector:@selector(isMultitaskingSupported)] &&
[device isMultitaskingSupported];*/
return TRUE;
}
とにかくIOS 4.0以降。
参照を削除し、.aを再構築します
今日も同じ問題があります。 AdMob SDKを6.4.1にアップグレードし、再度送信しますが、使用しません。しかし、AdMobコードを無効にしてライブラリにリンクしなかった後、アップロードチェックに合格しました。
Googleの発表によると、AdMob SDK 6.4以降はUDIDにアクセスしなくなりました。明らかに、Appleはそうは思わない。
通常、分析およびベータテスト用のサードパーティライブラリはuniqueIdentifierを使用してユーザーを追跡し(たとえば、テストフライトや古いバージョンのGA)、使用しているサードパーティライブラリのいずれかがこれを使用しているかどうかを確認します。そうでない場合は、 http://itunesconnect.Apple.com で説明を求めることができます。
Facebook IOS SDK自体は非推奨の 'uniqueIdentifier'を使用しているとは思わない。 https://github.com/facebook/facebook-ios- sdk 。
しかし、Facebook SDKがこのソースから生成されると、作成されたバイナリには文字列が含まれます。 SDKで使用される唯一のライブラリは、-> Accounts.framework <-from IOSそのもの!
Appleは自分の足を撃った!
編集: Eric は正しい答えを与えました。 UIDeviceは、facebook-ios-sdk/src/FBSession.mで使用されます。 Accounts.frameworkは問題ではありませんでした。
私は一日中試しましたが、私のアプリは常に拒否されます。
最初に、findを試しました。 | grep -v .svn | grep ".a" | grep -v ".app" |プロジェクトフォルダー内のxargs grep uniqueIdentifier.
Google Analytics、AdMob、およびWikitude SDKがuniqueIdentifierを使用しているようです。そこでGAを削除し、AdMobとWikitudeを更新しました。現在、uniqueIdentifierメソッドへの呼び出しはありません。 grepを実行しても、結果は何もありません。プロジェクトのすべてを削除しましたが、アプリは常に拒否されます!
今何ができますか?任意の助けをいただければ幸いです...
編集:私はこの行を見つけました:
IDEWorkspaceWindowController***UniqueIdentifier***_IDEActiveWorkspaceTabController_IDE
このファイル内:
MYPROJECT.xcodeproj/project.xcworkspace/xcuserdata/MYUSERNAME.xcuserdatad/UserInterfaceState.xcuserstate
問題はこの行から来ると思いますか?
昨日、アプリケーションの更新でも同じ問題が発生しました。
UDIDを使用してサードパーティライブラリを検索した後、iOSのコンバージョントラッキングを使用していることに気付きました。このライブラリはUDIDを使用していましたが、4月10日にはこの問題を修正するアップデートがリリースされました。
IOSコンバージョントラッキングSDK v1.2.0はUDIDにアクセスしなくなりました(2013年4月10日リリース)。
役に立てば幸いです。
これはすべてAppleで、必要なことは次のとおりです。
strings - -a -Arch armv7 "App.app/App" | grep uniqueIdentifier
App.appは、App.ipaを解凍した後、ペイロードディレクトリ内に配置されます。
ペイロードディレクトリ内でそのコマンドを実行するだけです。使用する既知のメソッドをグレーピングすることにより、テストを実行できます。
ビルド対象のすべてのアーキテクチャを検索する場合は、armv7をallに置き換えることができます。
今日も同じ問題に直面しています。 opensslにはuniqueIdentifierという名前の変数があります。たぶんそれが問題を引き起こしています。
同じ問題がありました。 RevMob sdkであることが判明しました。最新の5.9.0(2013/05/30)の継ぎ目で問題を修正します。