1

私のアプリでは、次のタイプのコードを使用してユーザーエージェントをいじっています。

// Fake Firefox's user agent during web service's registration
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Mozilla/5.0 (compatible; Windows; U; Windows NT 6.2; WOW64; en-US; rv:12.0) Gecko/20120403211507 Firefox/12.0", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];

// Return to standard iOS user agent when web service registration is done
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];

私のアプリの一部では、ユーザーは「アカウントにサインアップ」ページを使用してWebサービスに登録できます。これを見つける唯一の方法は、Webサイトが「アプリをダウンロードしてください」というページを自動的に起動しないようにする方法です。このように、ユーザーエージェント文字列をいじくりまわすことです。でユーザーエージェントを設定しようとしましたNSMutableURLRequestが、これがまったく機能しませんでした。(はい、「User-Agent」と「User_Agent」の両方を設定してみましたNSMutableURLRequest。)

これにより、アプリがAppleから拒否される可能性があると聞きました。誰かが確認または拒否したり、コメントを提供したりできますか?ありがとう!

4

2 に答える 2

2
  1. App Storeには、ユーザーエージェントを偽造する複数のアプリもあります。
  2. NSLocalizedStringの言語を設定するためのすべての回避策は、NSUserDefaultsでもAppleキーのカスタム値を設定します

だから私はAppleがあなたのアプリを拒否するとは思わない。

于 2012-10-12T16:28:25.113 に答える
1

サーバーがアプリが呼び出していることを認識し、アプリにRetina画面があるかどうかなどの追加データを渡す方法として、アプリでカスタムユーザーエージェントを使用します。セキュリティのためにこれに依存しない限り、それはうまく機能します。結果として拒否されたものはありません。

于 2012-10-12T18:20:17.093 に答える