Webサーバーのアクセスログを確認しました。itunesstoredアプリがTWICEに聞いてきました。(HEAD と GET)
10.0.2.2 - - [06/Feb/2014:14:50:48 +0900] "HEAD /test/app/app.ipa HTTP/1.1" 401 - "-" "itunesstored/1.0 iOS/7.0.4 model/iPhone4,1 (6; dt:73)"
10.0.2.2 - test [06/Feb/2014:14:51:03 +0900] "HEAD /test/app/app.ipa HTTP/1.1" 200 - "-" "itunesstored/1.0 iOS/7.0.4 model/iPhone4,1 (6; dt:73)"
10.0.2.2 - - [06/Feb/2014:14:51:04 +0900] "GET /test/app/app.ipa HTTP/1.1" 401 539 "-" "itunesstored/1.0 iOS/7.0.4 model/iPhone4,1 (6; dt:73)"
10.0.2.2 - test [06/Feb/2014:14:51:09 +0900] "GET /test/app/app.ipa HTTP/1.1" 200 4066787 "-" "itunesstored/1.0 iOS/7.0.4 model/iPhone4,1 (6; dt:73)"
そこで、WEBサーバーがHEADをリクエストした際に基本認証を無視するように設定を変更しました。
前:
<Directory "/Library/WebServer/Documents/test/app/">
AuthType Basic
AuthName "BASIC AUTH"
AuthUserFile "/etc/apache2/htpasswd"
Require valid-user
</Directory>
後:
SetEnvIf Request_Method HEAD headreq
<Directory "/Library/WebServer/Documents/test/app/">
Order Allow,Deny
Allow from env=headreq
AuthType Basic
AuthName "BASIC AUTH"
AuthUserFile "/etc/apache2/htpasswd"
Require valid-user
Satisfy Any
</Directory>
その後、itunesstore アプリは 1 回だけ要求しました。(GETのみ)。