iTunes는 URL 및 iOS 7을 검토합니다 (사용자에게 앱을 평가하도록 요청) .AppStore에 빈 페이지가 표시됨


158

사용자가 앱을 평가하고 등급 페이지에서 직접 앱 스토어를 열도록 요청하는 기술이 iOS 7에서 계속 작동하는지 알고 있습니까?

내 앱에서이 URL을 열었습니다.

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=353372460&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

그러나 더 이상 작동하지 않는 것 같습니다 (AppStore에 빈 페이지 표시). 나는 또한이 URL wihout luck을 시도했다.

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?pageNumber=0&sortOrdering=1&type=Purple+Software&mt=8&id=353372460

UAAppReviewManager의 소스 코드를 살펴본 후 실제로 iOS7에 pb가있는 것처럼 보입니다. 따라서 표준 앱 URL을 사용하므로 사용자는 요율 버튼을 검색해야합니다. ---
Samuel

iOS 7의 검토 링크가 작동하지 않는 것 같습니다. 코드를 일반 앱 링크 URL로 변경하겠습니다. 사용자는 검토 버튼을 클릭해야합니다.
Emmy

4
게시 한 두 번째 링크는 이제 iOS 7에서 작동합니다! 리뷰 페이지로 바로 이동
Maximilian Litteral

나를 위해 .... 첫 번째 URL이 작동하는 것 같습니다. 방금 ID 번호를
바꿨습니다

답변:


198

iOS7부터 URL이 변경되어 검토 페이지로 이동할 수 없으며 앱으로 만 전달됩니다.

itms-apps://itunes.apple.com/app/idAPP_ID

APP_ID를 애플리케이션 ID로 바꿔야합니다. 질문의 앱 ID를 기반으로 다음과 같습니다.

itms-apps://itunes.apple.com/app/id353372460

숫자 앞에 있는 ID 를 주목하십시오 ... 문자열은 단지 353372460이 아니라 id 353372460입니다.

iOS7 이전의 모든 경우 '이전'URL을 사용해야하는데,이 URL 만 검토 페이지로 바로 이동할 수 있습니다. 또한 이러한 통화는 장치 에서만 작동 합니다 . 시뮬레이터에 App Store 앱이 설치되어 있지 않으므로 시뮬레이터에서이를 실행하면 아무 작업도 수행되지 않습니다.


구현을 위해 Appirater를 살펴보십시오. https://github.com/arashpayan/appirater

phonegap 관련 정보를 사용할 수 없습니다 (사용하지 마십시오). 그러나 기본적으로 사용자가 실행중인 iOS 버전을 확인한 다음 이전 URL 또는 새 iOS7 URL을 사용합니다.


18
실제로 이것은 검토 탭이 아닌 앱을 엽니 다.
Idan

3
그렇습니다.하지만 iOS7에서는 현재로서는 달성 할 수있는 최고입니다.
Frank

새로운 페이스 북의 애플 리케이션 쇼 앱 스토어 페이지 안에 그들이 그렇게하는 방법 아이폰 OS 7. 사람의 아는 응용 프로그램 자체?
EricS

1
iRate와 달리 / LANGUAGE / app / idAPP_ID 정보와 함께 위의 링크를 사용해야합니다
Dan

6
언어를 제거하고 싶다면 Appirater는 장치가 iTunes Store와 동일하지 않은 언어로 설정되어 있으면 빈 페이지 (예 : 영국 영어)를 얻습니다. 언어 비트를 제거하면 여전히 작동하고 저장됩니다 소유자 언어로.
Chris

166

다음 URL은 iOS 7.1에서 완벽하게 작동합니다.

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=xxxxxxxx&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8

여기서 xxxxxxxx앱 ID입니다.

업데이트 . iOS 9.3.4 및 iOS 10 GM에서 작동 (Jeet)


5
이것은 8.0 DP 5에서 다시 깨졌습니다! 지금 버그로보고하고 프로덕션 릴리스에서 수정 될 수 있기를 바랍니다.
Cliff Ribaudo

6
App Store.app 리뷰 페이지로 직접 이동합니다. Xcode 6으로 빌드 됨 iOS 8.0, iOS 7.1.2, iPhone 5 및 iPhone 4에서 확인되었습니다.
jclee

7
내가 발견. 유형은 항상 자주색 소프트웨어와 같아야합니다. 그것은 사과입니다.
Matt Parkins

2
iOS 8.3의 iPhone 및 iPad에서 모두 올바르게 작동합니다. 방금 테스트 :) 감사합니다!
혼자

2
iPod Gen 5, iOS 9.0.1에서 제대로 작동합니다.
haxpor

47

이것은 내 끝에서 작동합니다 (Xcode 5-iOS 7- Device !) :

itms-apps://itunes.apple.com/app/idYOUR_APP_ID

iOS 7보다 낮은 버전의 경우 이전 버전을 사용하십시오.

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID

1
이것은 iOS7 장치 (Xcode 5 사용)에서 빈 화면을 제공합니다. 이는 여전히 iOS6에 사용중인 URL입니다. iOS 7의 경우 답변에 자세히 나와있는 것을 사용하고 있습니다. 그것이 당신을 위해 일하고 있다는 것이 이상합니다.
Frank

@ 프랭크이 링크를 어떻게 열 수 있습니까? iRate를 사용하고 있으며이 링크를 사용하고 있습니다. 어쩌면 그것을 사용하고 코드와 정확히 다른 점을 확인하십시오.
Idan

2
다음 코드를 사용하고 있습니다 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:ITUNES_APP_URL_IOS7]];
Frank

1
self.appStoreID가 컴파일되지도 않음
ngb

1
iOS 8 DP5에서 다시 고장났습니다. 이 버그를 버그로보고하고 프로덕션 환경에서 수정되기를 바랍니다. 그렇지 않으면 우리는 다시 8.1까지 기다릴 것입니다.
Cliff Ribaudo

18

한 줄의 코드 간단한 대안 : ** 아래의 시뮬레이터 설명 참조 **

http://itunes.apple.com/app/idAPP_ID

편집 : 이제 iOS 7.1을 통해 App Store의 리뷰 탭에 직접 링크 할 수 있으므로 추가 코드 줄을 직접 투자하여 가치를 얻을 수 있습니다. 나머지에 대한 다른 답변을 참조하십시오.

여기에 우리가 사용하는 http: 대신 itms-apps: , 아이폰 OS가 나머지 작업을하자

저도 같은 결과는 6.1 및 7 기기 (아이 패드 / 아이폰 / 아이팟 터치 4) iOS에서 테스트를 얻을

특히이 바로 가기 를 들어, 아이폰 OS 6 하여에 대한 사용자 소요 Details탭이 아닌 Reviews탭을 선택합니다.

Purple+Software링크는 사용자에게 iOS 6의 리뷰 탭으로 연결됩니다. OS를 확인하는 방법을 알고 있다면 분명히 좋습니다.

중요 사항 : iOS 5.1, 6.1 및 7 용 시뮬레이터에서 오류가 발생
합니다. 페이지를 열 수 없습니다. 주소가 유효하지 않기 때문에 Safari가 페이지를 열 수 없습니다 (우리는 브라우저 외부에서 시뮬레이터 외부의 유효한 URL임을 알고 있습니다)

명확하게 : iOS 7에서 눈에 띄는 지연없이 http://동일한 경험을 제공합니다 itms-apps:.

* 위에서 언급 한 시뮬레이터 동작에 유의하십시오. 시뮬레이터를 통해 카메라에 액세스하려고 시도하는 것과 완전히 다른 것은 아닙니다. 시뮬레이터는 테스트 할 장소가 아닙니다. *


1
질문에 정확히 어떻게 대답하고 있는지 잘 모르겠습니다. 제공 한이 링크는 OP가 요청한 내용을 수행하지 않으며, 이는 App Store에서 "검토"페이지를 엽니 다. 앱 자체에 직접 연결하는 것은 쉽지 않습니다.
Asem H.

iOS7에서 리뷰에 직접 연결할 수 없다는 것을 감안할 때 이것은 완전히 합리적인 솔루션처럼 보입니다.
Nick Cecil

현재는 사실이지만 http가 App Store 앱으로 계속 라우팅된다는 보장은 없습니다. Apple은 향후에 http 앱 링크를 Safari로 보낼 것인지 결정할 수 있습니다. 직접 프로토콜을 사용하는 것이 더 안전합니다.
시인 마운틴

Apple이 직접 프로토콜을 변경하여 다른 형식을 사용하지 않으면 iOS7에서 작동하지 않습니다. 따라서 실제로 "새로워"는 아닙니다.
Real World

1
에 관한 http:itms-apps:내가 함께 리뷰를 탭으로 직접 연결 할 수 있었다 itms-apps하지와 http아이폰 OS 7.1.1에.
zekel

17

iOS7에서는 앱에서 직접 리뷰 페이지를 열 수 있습니다. 다음 URL을 사용하십시오 ...

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID

이것은 확실히 작동합니다 .. :)


나도 몰라.. iOS8에서 체크인 했니?
Murali

1
아니 그렇지 않아. 버그 신고서를 제출하십시오!
Cliff Ribaudo

iOS 8.1.1을 사용하고 있으며이 URL은 바로 검토 페이지로 이동합니다.
mrzzmr

1
문자열에서 "type = Purple + Software"는 무엇입니까?
Darko

16

지원되는 iOS 버전은 확실하지 않지만 iOS 10.3의 일부로 URL에 추가 할 수 있는 새로운 쿼리 매개 변수 가 있습니다 action=write-review. iOS 10.2 및 9.3.5에서 이것을 테스트했으며 작동합니다. 그러나 iOS 7.1.2에서는 작동하지 않으므로 iOS 8.0과 9.3.5 사이에 지원이 추가되었습니다. 추가 조사가 필요합니다!

예 : https://itunes.apple.com/app/id929726748?action=write-review&mt=8

검토 탭만 표시하는 대신 "리뷰 작성"대화 상자가 열립니다 .


2
건배 형제 :) 이것은 지금까지 최고의 솔루션이었습니다. 요점까지 완전히 목적을 제공합니다. 나에게 이것은 받아 들일만한 대답이다. 9.3.5 및 iOS 10.2.1에서 작동하도록 테스트되었습니다. 직접 리뷰를 쓰면 열립니다. itms-apps : //itunes.apple.com/gb/app/id1136613532? action = write-review & mt = 8을 사용하여 사용자가 직접 리뷰를 작성하도록했습니다.
Ankit Kumar Gupta

... GB는 영국을 의미하지 않습니까? 그렇다면 모든 사용자를 영국 앱 스토어로 안내 하시겠습니까?
Robert Gummesson

@Robert Yeh, 처음에 / gb 링크가 시작되었습니다. 나는 그것이 여전히 사용자의 상점에 열려 있다고 생각하지만 답변에서 제거했습니다.
Joseph Duffy

iOS10에서는 작동하지만 베타 11을 사용하는 iOS11에서는 작동하지 않는 것 같습니다. 무언가가 바뀌면 어떤 아이디어가 있습니까?
ZS

이것은 iOS 11.1.1에서 작동합니다. 감사! 허용 대답, @astrocb이어야한다
Vexir

9
+ (NSString *)getReviewUrlByAppId:(int)appId
{ 
    NSString *templateReviewURL = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APP_ID";
    NSString *templateReviewURLiOS7 = @"itms-apps://itunes.apple.com/app/idAPP_ID";
    NSString *templateReviewURLiOS8 = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software";

    //ios7 before
    NSString *reviewURL = [templateReviewURL stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", appId]];

    // iOS 7 needs a different templateReviewURL @see https://github.com/arashpayan/appirater/issues/131
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 7.1) 
    {
        reviewURL = [templateReviewURLiOS7 stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", appId]];
    }
    // iOS 8 needs a different templateReviewURL also @see https://github.com/arashpayan/appirater/issues/182
    else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
    {
        reviewURL = [templateReviewURLiOS8 stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", appId]];
    }

    return reviewURL;
}

1
다른 문제를 해결하기 위해 Appirater 가 다시 업데이트되었습니다. 주요 변경 사항은 확인을에서 < 7.1로 변경하여 연결이> = 7.1에서 <8.0 사이의 모든 항목에 대해 이전 링크를 사용하는 대신 모든 7.x iOS 버전에 사용 < 8.0되도록 변경되었습니다 templateReviewURLiOS7.
Markus A.

9

iOS9에서 검토 링크가 다시 끊어졌습니다. 몇 가지 실험을 할 때 Apple이 iOS7 이전의 상태로 되 돌렸다는 것을 알았습니다. 따라서 다음을 수행해야합니다.

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=247423477&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

2474234779 자리 앱 ID는 어디에 있습니까 (주된 차이점은 &onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software앱 ID 뒤에 추가해야한다는 것입니다 ).


5

위의 모든 답변은 이제 더 이상 사용되지 않지만 (iOS 7이지만 작동 할 수 있음) Apple에서 Apps에 대한 링크를 제공하도록 권장하는 새로운 방법을 제공합니다. 앱의 링크는 iTunes의 링크이며 (링크 복사 사용)이 코드는 코드에서 사용하는 것이 좋습니다.

스위프트 3.0

let path = URL(string: "https://itunes.apple.com/us/app/calcfast/id876781417?mt=8")
UIApplication.shared.open(path!)

또는 더 나은-옵션을 올바르게 취급하고 링크에 도달하지 못할 가능성을 처리하십시오.

if let path = URL(string: "https://itunes.apple.com/us/app/calcfast/id876781417?mt=8") {
    UIApplication.shared.open(path) {
        (didOpen:Bool) in
        if !didOpen {
            print("Error opening:\(path.absoluteString)")
        }
    }
}

목표 -C

#define APP_URL_STRING  @"https://itunes.apple.com/us/app/calcfast/id876781417?mt=8"

그런 다음 APP_URL_STRING코드를 호출 할 수 있습니다 .

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: APP_URL_STRING] options:@{} completionHandler:nil];

리디렉션 링크를 처리하는 이전 방법은 더 이상 사용되지 않으며 지원되지 않으므로 Apple에서 현재 권장하는 방법입니다.

여러 앱이있는 경우 모든 앱에 대한 링크 :

#define MYCOMPANY_URL_PATH @"http://appstore.com/mycompany"
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: MYCOMPANY_URL_PATH] options:@{} completionHandler:nil];

위의 앱 링크는 사용자가 직접 볼 수없는 코드 또는 링크에 사용하는 것이 좋습니다. 사용자가보고 기억할 수있는 링크를 제공하려면 다음을 사용하십시오. http://appstore.com/calcfast


3
리뷰 페이지에 링크되지 않습니다
ngb

@ngb는 앱 또는 개발자 페이지에만 링크 할 수 있습니다. 다운 투표에 유효한 이유 또는 실패를 제시하십시오. 리뷰 페이지에 대한 링크를 표시하지 않지만 사용자는 쉽게 평가를 클릭 할 수 있습니다.
Sverrisson

1
이것이 올바른 Apple 권장 방법입니다. 다른 것은 해킹입니다.
Martin Marconcini

@Bingo 무슨 뜻인가요? 내가 제공하는 링크는 리뷰 페이지에 대한 & mt = 8 ans 링크로 끝납니다. 내 대답에 따르면 Apple에서 권장하는 사항을 언급하고 있습니다. 현재 귀하의 경우에는 링크가 작동 할 수 있지만 다른 국가의 사용자에게는 작동합니까, 아니면 변경되지 않을 것이라고 확신합니까?
Sverrisson

4

이 URL을 사용하는 것이 나에게 완벽한 솔루션이었습니다. 사용자를로 직접 연결합니다 Write a Review section. @Joseph Duffy의 크레딧.

샘플 코드의 경우 다음을 시도하십시오.

스위프트 3, Xcode 8.2.1 :

 let openAppStoreForRating = "itms-apps://itunes.apple.com/gb/app/id1136613532?action=write-review&mt=8"
 if UIApplication.shared.canOpenURL(URL(string: openAppStoreForRating)!) {
      UIApplication.shared.openURL(URL(string: openAppStoreForRating)!)
 } else {
      showAlert(title: "Cannot open AppStore",message: "Please select our app from the AppStore and write a review for us. Thanks!!")
 }

여기 showAlert는에 대한 사용자 정의 함수입니다 UIAlertController.


3

제품 ID를 자동으로 가져 와서 App Store Review 및 제품 페이지 링크를 생성 할 수 있습니다 .

- (void) getAppStoreLinks {
productID = [[NSUserDefaults standardUserDefaults] objectForKey:@"productID"]; //NSNumber instance variable
appStoreReviewLink = [[NSUserDefaults standardUserDefaults] objectForKey:@"appStoreReviewLink"]; //NSString instance variable
appStoreLink = [[NSUserDefaults standardUserDefaults] objectForKey:@"appStoreLink"]; //NSString instance variable

if (!productID || !appStoreReviewLink || !appStoreLink) {
    NSString *iTunesServiceURL = [NSString stringWithFormat:@"https://itunes.apple.com/lookup?bundleId=%@", [NSBundle mainBundle].bundleIdentifier];
    NSURLSession *sharedSes = [NSURLSession sharedSession];
    [[sharedSes dataTaskWithURL:[NSURL URLWithString:iTunesServiceURL]
              completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

                  NSInteger statusCode = ((NSHTTPURLResponse *)response).statusCode;

                  if (data && statusCode == 200) {

                      id json = [[NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingOptions)0 error:nil][@"results"] lastObject];

                      //productID should be NSNumber but integerValue also work with NSString
                      productID = json[@"trackId"];

                      if (productID) {
                          appStoreReviewLink = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%d&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8",productID.integerValue];
                          appStoreLink = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%d",productID.integerValue];

                          [[NSUserDefaults standardUserDefaults] setObject:productID forKey:@"productID"];
                          [[NSUserDefaults standardUserDefaults] setObject:appStoreReviewLink forKey:@"appStoreReviewLink"];
                          [[NSUserDefaults standardUserDefaults] setObject:appStoreLink forKey:@"appStoreLink"];

                      }
                  } else if (statusCode >= 400) {
                      NSLog(@"Error:%@",error.description);
                  }
              }
      ] resume];
}
}

앱의 리뷰 페이지 열기

- (IBAction) rateButton: (id)sender {
   NSString *appStoreReviewLink = appStoreReviewLink;
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:appStoreReviewLink]];
}

앱의 App Store 페이지 열기

 - (IBAction) openAppPageButton: (id)sender {
   NSString *appStoreLink = appStoreLink;
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString: appStoreLink]];
 }

2

이 버그는 iOS7.1에서 수정 될 것이라고합니다. 코로나 포럼 및 iPhoneDevSDK에서 여기읽으십시오 .


3
불행히도 iOS 7.1은 현재 작동하지 않으며 여전히 작동하지 않습니다.
user1139733

2
iOS 7.1에서 다시 작동하고 (리뷰 페이지로 직접 이동) 다른 사람들은 devsdk 링크에서 동일하게 표시했습니다. 나에게있어서 계획을 itms-apps에서 http로 변경해야했고 iOS 7.1에서 완벽하게 작동합니다. iOS 7.0에서는 여전히 기본 앱 페이지로 이동하지만 흰색 페이지를 표시하는 이전 itms-apps 링크와 달리 적어도 http 링크가 작동합니다.
stonemonk

iOS7.1에서 "오래된"(Purple + Software) 방법이 완벽하게 작동하고 있음을 긍정적으로 확인할 수 있습니다. 내 앱에서 다음과 같은 증거를 볼 수 있습니다. j.mp/josegg 메인 화면에서 "설정"-> "무료 가져 오기 "를 클릭하십시오. Js "-> 그런 다음"Rate Us "를 클릭하십시오-> 앱 스토어에서 내 앱 페이지의 검토 탭으로 바로 이동합니다 (분명히 iOS 7.1 이상 또는 iOS 6.1.4-에서만 작동 함)
Joselito
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.