앱 스토어 링크: "이 앱 등급/검토"
앱에 "이 앱 등급/검토" 기능을 넣고 싶습니다.
그들이 앱을 검토하는 앱스토어의 화면에 직접 연결할 수 있는 방법이 있습니까?따라서 고객은 메인 앱 링크를 클릭할 필요가 없습니다.감사해요.
편집: 응답이 부족하여 현상금을 지급하기 시작합니다.확실하게 하기 위해서입니다.스토어에서 앱 페이지로 연결할 수 있으며, 사용자에게 "이 앱 검토" 화면을 클릭하도록 요청할 수 있습니다.문제는 그들이 아무것도 클릭할 필요가 없도록 "리뷰 이 앱" 화면에 직접 링크하는 것이 가능한가 하는 것입니다.
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
이것은 내 쪽에서 작동합니다(Xcode 5 - iOS 7 - Device!):
itms-apps://itunes.apple.com/app/idYOUR_APP_ID
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software
코드 조각(복사하여 붙여넣기만 하면 됨):
#define YOUR_APP_STORE_ID 545174222 //Change this one to your ID
static NSString *const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%d";
static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d";
[NSURL URLWithString:[NSString stringWithFormat:([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f)? iOS7AppStoreURLFormat: iOSAppStoreURLFormat, YOUR_APP_STORE_ID]]; // Would contain the right link
업데이트:
Swift 5.1, Xcode 11
Real Device iOS 13.0에서 테스트됨(작동 보증)
import StoreKit
func rateApp() {
if #available(iOS 10.3, *) {
SKStoreReviewController.requestReview()
} else {
let appID = "Your App ID on App Store"
let urlStr = "https://itunes.apple.com/app/id\(appID)" // (Option 1) Open App Page
let urlStr = "https://itunes.apple.com/app/id\(appID)?action=write-review" // (Option 2) Open App Review Page
guard let url = URL(string: urlStr), UIApplication.shared.canOpenURL(url) else { return }
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url) // openURL(_:) is deprecated from iOS 10.
}
}
}
편집: iOS 11 솔루션
이것이 저의 원래 답변에 대한 해결책입니다(아래 참조).iOS 11을 사용할 때 다음 링크 형식이 작동합니다.
https://itunes.apple.com/us/app/appName/idAPP_ID?mt=8&action=write-review
간히교를 대체합니다.APP_ID
사용자의 특정 앱 ID로.링크를 작동시키는 열쇠는 국가 코드입니다.위의 링크는 다음을 사용합니다.us
코드를 사용하지만 실제로 사용되는 코드는 중요하지 않습니다.사용자는 자동으로 자신의 스토어로 리디렉션됩니다.
iOS 11 업데이트:
다른 답변에서 제시한 검토 페이지로 바로 이동하는 솔루션 중 iOS 11에서 작동하는 솔루션은 없는 것 같습니다.
문제는 iOS 11 앱스토어 앱의 앱 페이지에 리뷰 탭이 더 이상 없다는 것입니다.그 대신 이제 리뷰는 설명과 스크린샷 바로 아래에 있습니다.물론 이 섹션에 직접 도달할 수도 있지만(예: 어떤 종류의 앵커를 사용하면) Apple에서 지원하지 않는 것 같습니다.
다음 링크 중 하나를 사용하면 더 이상 작동하지 않습니다.사용자는 앱스토어 앱으로 이동하지만 빈 페이지만 표시됩니다.
itms-apps://itunes.apple.com/app/idYOUR_APP_ID?action=write-review
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software
이러한 링크를 여전히 사용하는 모든 사용자는 가능한 한 빨리 앱을 업데이트해야 합니다. 사용자에게 빈 앱 스토어 페이지를 참조하는 것은 의도한 것이 아닐 가능성이 높기 때문입니다.
그러나 검토 페이지가 아니라 앱 페이지를 참조하는 링크는 여전히 작동합니다.
itms-apps://itunes.apple.com/app/idYOUR_APP_ID (same as above, but without write-review parameter)
따라서 앱 스토어 페이지로 사용자를 이동할 수 있지만 더 이상 검토 섹션으로 직접 이동할 수는 없습니다.이제 사용자는 수동으로 검토 섹션으로 스크롤하여 피드백을 남겨야 합니다.
의심할 여지 없이 이것은 "사용자 경험에 대한 훌륭하고 놀라운 이점이며 개발자들이 사용자를 성가시게 하지 않고 고품질 리뷰를 남길 수 있도록 도와줄 것입니다."잘했어, 애플...
위에 쓰여 있는 모든 것이 맞습니다.앱에 삽입하고 {YOUR APP ID}를 실제 앱 ID로 변경할 샘플만 iTunesconnect에서 가져와 Review 페이지를 표시합니다.위에서 언급했듯이 시뮬레이터에서는 작동하지 않고 단지 장치에서만 작동한다는 점에 유의하십시오.
- iOS 7 변경으로 인해 수정 중입니다.
- iOS 10+
openURL
- iOS 13.6+의 경우 버전 6.0 이전에 사용된 검토 URL을 사용하여 액세스할 수 있습니다.검토 페이지로 바로 이동합니다.코드 업데이트됨
NSString * appId = @"{YOUR APP ID}";
NSString * theUrl = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software",appId];
int vers = (int) [[UIDevice currentDevice].systemVersion integerValue];
if (vers > 6 && vers < 12 ) theUrl = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@",appId];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:theUrl] options:@{} completionHandler:nil];
위의 모든 접근 방식이 옳지만, 요즘에는 SKStoreProductViewController를 사용하면 사용자 환경이 개선됩니다.이 기능을 사용하려면 다음 작업을 수행해야 합니다.
- 앱 대리인에 SKStoreProductViewControllerDelicateProtocol 구현
필요한 productViewControllerDidFinish 메서드 추가:
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController { [viewController dismissViewControllerAnimated: YES completion: nil]; }
SKStoreProductViewController 클래스를 사용할 수 있는지 확인하고 이를 표시하거나 AppStore로 전환합니다.
extern NSString* cAppleID; // must be defined somewhere... if ([SKStoreProductViewController class] != nil) { SKStoreProductViewController* skpvc = [[SKStoreProductViewController new] autorelease]; skpvc.delegate = self; NSDictionary* dict = [NSDictionary dictionaryWithObject: cAppleID forKey: SKStoreProductParameterITunesItemIdentifier]; [skpvc loadProductWithParameters: dict completionBlock: nil]; [[self _viewController] presentViewController: skpvc animated: YES completion: nil]; } else { static NSString* const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%@"; static NSString* const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@"; NSString* url = [[NSString alloc] initWithFormat: ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f) ? iOS7AppStoreURLFormat : iOSAppStoreURLFormat, cAppleID]; [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]]; }
iOS용 솔루션 11
Short App Store URL이 새 iOS 11 App Store에서 "검토 쓰기" 인터페이스를 올바르게 열지 않습니다.예를 들어, 이것은 작동하지 않습니다.
https://itunes.apple.com/app/id333903271?mt=8&action=write-review
이 문제를 해결하려면 URL에 다음과 같은 두 글자의 국가 코드와 앱 이름을 포함해야 합니다.
https://itunes.apple.com/us/app/twitter/id333903271?mt=8&action=write-review
또는
itms-http://itunes.apple.com/us/app/twitter/id333903271?mt=8&action=write-review
앱의 전체 URL은 https://linkmaker.itunes.apple.com/ 에서 확인할 수 있습니다.
이렇게 하면 iOS 11 앱스토어에서 "검토 쓰기" 인터페이스가 성공적으로 열립니다.
편집: 아래 @Theo에서 언급한 것처럼 앱 이름이 변경될 경우 국가 코드를 현지화할 필요가 없으며 URL의 앱 이름을 업데이트할 필요가 없습니다.
Apple이 더 짧은 URL을 위해 이 문제를 곧 해결하기를 바랍니다.Sedar://34498138
func jumpToAppStore(appId: String) {
let url = "itms-apps://itunes.apple.com/app/id\(appId)"
UIApplication.sharedApplication().openURL(NSURL(string: url)!)
}
iOS 11+(새 앱스토어)에서 이를 수행하는 새로운 방법이 있습니다.검토 작성 대화상자를 직접 열 수 있습니다.
iOS 11 예:
itms-apps://itunes.apple.com/us/app/id1137397744?action=write-review
또는
https://itunes.apple.com/us/app/id1137397744?action=write-review
주의:
- 국가 코드가 필요합니다(
/us/
). 될 수 하지 않습니다. 상관 없습니다. - 변경 (앱 ID 변경(경()
1137397744
앱 에서 가져옵니다로 이동합니다. - 이전 iOS 버전(11 이전 버전)을 지원하려면 OS 버전이 11 이상인 경우에만 이 방식으로 연결하는 일부 조건부 논리를 원할 것입니다.
이전의 모든 링크는 더 이상 "검토" 탭으로 직접 연결되지 않습니다.
이 링크는 "검토 탭"으로 직접 연결됩니다.
https://itunes.apple.com/app/viewContentsUserReviews?id=AppID
또는
itms-http://itunes.apple.com/app/viewContentsUserReviews?id=AppID
이 URL을 사용하는 것이 저에게 완벽한 해결책이었습니다.를 자가직사할수있다니습용으로 합니다.Write a Review section
@Joseph Duffy에 대한 크레딧. 꼭 시도해야 합니다.
= URL =itms-apps://itunes.apple.com/gb/app/idYOUR_APP_ID_HERE?action=write-review&mt=8
귀하의_APP_ID_HERE를 귀하의 AppId로 바꿉니다.
샘플 코드의 경우 다음을 시도합니다.
Swift 3, Xcode 8.2.1 :
let openAppStoreForRating = "itms-apps://itunes.apple.com/gb/app/id1136613532?action=write-review&mt=8"
if let url = URL(string: openAppStoreForRating), UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
} else {
showAlert(title: "Cannot open AppStore",message: "Please select our app from the AppStore and write a review for us. Thanks!!")
}
▁for의 사용자 지정 입니다.UIAlertController
.
이 링크는 URL 시작 기능에서 사용할 수 있습니다.
https://apps.apple.com/app/APP_ID?action=write-review
iOS7에서 요금 및 검토를 위해 앱을 앱스토어로 전환하는 URL이 변경되었습니다.
itms-apps://itunes.apple.com/app/idAPP_ID
APP_ID를 사용자의 애플리케이션 ID로 대체해야 합니다.
iOS 6 이상에서는 이전 답변의 URL이 정상적으로 작동합니다.
출처: 어피레이터
코딩을 즐기십시오.!!
10. 10을 첨부할 수 .3부터 첨부 가능action=write-review
에 항목 https://itunes.apple.com/...
그리고.https://appsto.re/...
에서는 . iOS 10.3 이상에서 열립니다.Write a review
iOS 버전이 낮은 경우 자동으로 앱의 앱 스토어 페이지로 돌아갑니다.
iOS 11 업데이트:Apple의 링크 메이커 사용: linkmaker.itunes.apple.com 및 추가&action=write-review
그게 가장 안전한 방법인 것 같습니다.
iOS 4는 "삭제 시 요금" 기능을 삭제했습니다.
현재로서는 iTunes를 통해 애플리케이션의 등급을 매길 수 있는 유일한 방법입니다.
편집: iTunes Link Maker를 통해 응용 프로그램에 대한 링크를 생성할 수 있습니다.이 사이트에는 자습서가 있습니다.
NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
iOS 8과 iOS 9 모두에서 앱에 대한 리뷰 페이지로 이동하는 Swift 2 버전:
let appId = "YOUR_APP_ID"
let url = "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=\(appId)"
UIApplication.sharedApplication().openURL(NSURL(string: url)!)
>= iOS8의 경우: (@EliBud의 답변 단순화)
#define APP_STORE_ID 1108885113
- (void)rateApp{
static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d";
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:iOSAppStoreURLFormat, APP_STORE_ID]];
if ([[UIApplication sharedApplication] canOpenURL:appStoreURL]) {
[[UIApplication sharedApplication] openURL:appStoreURL];
}
}
iOS 10에서도 동일한 문제가 발생하고 있으며 iTunes 요금 섹션을 열 수 있습니다.
기본적으로 마지막 URL 변수가 "mt=7"로 변경되었습니다.
건배.
Apple Developer Documentation의 인용문
또한 앱의 설정 또는 구성 화면에 앱 스토어 제품 페이지에 딥 링크되는 영구 링크를 계속 포함할 수 있습니다.앱스토어에서 사용자가 리뷰를 작성할 수 있는 페이지를 자동으로 열려면 action=write-review 쿼리 매개변수를 제품 URL에 추가합니다.
따라서 URL은 다음과 같습니다.
itms-http://itunes.apple.com/app/idYOUR_APP_ID?action=write-review
let rateUrl = "itms-apps://itunes.apple.com/app/idYOUR_APP_ID?action=write-review"
if UIApplication.shared.canOpenURL(rateUrl) {
UIApplication.shared.openURL(rateUrl)
}
SKStore ProductView 컨트롤러를 통해 AppStore의 모든 앱에 연결
SKStoreProductViewController를 통해 앱스토어에서 앱에 쉽게 연결할 수 있습니다.하지만 저는 약간의 어려움을 겪었습니다. 그래서 저는 모든 과정과 필요한 코드를 여기에 보여주기로 했습니다.또한 이 기술은 항상 올바른 저장소를 사용하도록 보장합니다(현지화된 앱에 중요).
앱 내 앱 스토어의 제품 화면을 앱 ViewController와 함께 표시하려면 다음 단계를 수행합니다.
- 프로젝트 설정(Target, Build Phases -> Binary with Libraries)에 StoreKit.framework를 추가합니다.
- ViewController 클래스로 StoreKit 가져오기
- ViewController가 이 프로토콜을 준수하도록 하십시오. SKStoreProductViewControllerDelegate
- 원하는 제품 화면과 함께 StoreView를 표시하는 방법을 만듭니다.
- 스토어 뷰 해제
하지만 가장 중요한 것은:이것은 어떤 이유에서인지 시뮬레이터에서 작동하지 않습니다. 인터넷 연결이 가능한 실제 장치에 빌드하고 설치해야 합니다.
- 프로젝트에 StorKit.framework 추가:
SWIFT 4: 앞에 설명된 단계에 따른 코드입니다.
// ----------------------------------------------------------------------------------------
// 2. Import StoreKit into the ViewController class
// ----------------------------------------------------------------------------------------
import StoreKit
// ...
// within your ViewController
// ----------------------------------------------------------------------------------------
// 4. Create the method to present the StoreView with the product screen you want
// ----------------------------------------------------------------------------------------
func showStore() {
// Define parameter for product (here with ID-Number)
let parameter : Dictionary<String, Any> = [SKStoreProductParameterITunesItemIdentifier : NSNumber(value: 742562928)]
// Create a SKStoreProduktViewController instance
let storeViewController : SKStoreProductViewController = SKStoreProductViewController()
// set Delegate
storeViewController.delegate = self
// load product
storeViewController.loadProduct(withParameters: parameter) { (success, error) in
if success == true {
// show storeController
self.present(storeViewController, animated: true, completion: nil)
} else {
print("NO SUCCESS LOADING PRODUCT SCREEN")
print("Error ? : \(error?.localizedDescription)")
}
}
}
// ...
// ----------------------------------------------------------------------------------------
// 3. Make your ViewController conforming the protocol SKStoreProductViewControllerDelegate
// ----------------------------------------------------------------------------------------
extension ViewController : SKStoreProductViewControllerDelegate {
// ----------------------------------------------------------------------------------------
// 5. Dismiss the StoreView
// ----------------------------------------------------------------------------------------
func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
print("RECEIVED a FINISH-Message from SKStoreProduktViewController")
viewController.dismiss(animated: true, completion: nil)
}
}
여기 제 앱에서 사용하고 있는 코드가 있습니다.
-(void)rateApp {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://itunes.apple.com/app/" stringByAppendingString: @"id547101139"]]];
}
승인된 답변이 "검토" 탭을 로드하지 못했습니다."상세" 탭 없이 "검토" 탭을 로드하는 방법을 아래에서 찾았습니다.
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id={APP_ID}&pageNumber=0&sortOrdering=2&mt=8"]];
를 바꿉니다.{APP_ID}
당신의 앱 스토어 앱 아이디로.
스위프트 3
fileprivate func openAppStore() {
let appId = "YOUR_APP_ID"
let url_string = "itms-apps://itunes.apple.com/app/id\(appId)"
if let url = URL(string: url_string) {
UIApplication.shared.openURL(url)
}
}
이것은 iOS 9-11에서 잘 작동합니다.
이전 버전에서 테스트하지 않았습니다.
[NSURL URLWithString:@"https://itunes.apple.com/app/idXXXXXXXXXX?action=write-review"];
iOS 10.3부터 시작:
import StoreKit
func someFunction() {
SKStoreReviewController.requestReview()
}
그러나 10.3과 함께 출시되었으므로 위에서 설명한 바와 같이 이전 버전에 대한 폴백 방법이 여전히 필요합니다.
당신의 앱이 베타 버전으로 승인되었지만 라이브가 아닌 경우 앱 리뷰 링크를 사용할 수 있지만 리뷰를 남길 수는 없습니다.
- 로그인
iTunes Connect
- 클릭
My Apps
- 다음을 클릭합니다.
App Icon
에 관심이 있는 - 다음을 수행해야 합니다.
App Store
페이지입니다. - 에 가다
App Information
섹션(자동으로 안내됩니다.) - 그 페이지 하단에는 다음과 같은 파란색 링크가 있습니다.
View on App Store
클릭하면 빈 페이지가 열립니다.페이지 상단의 URL 표시줄에 있는 내용을 복사하면 앱 리뷰 링크가 됩니다.앱이 활성화되면 라이브가 됩니다.
iOS14에서 테스트된 Swift 5
별 5개를 선택한 상태에서 검토 창을 엽니다.
private func openReviewInAppStore() {
let rateUrl = "itms-apps://itunes.apple.com/app/idYOURAPPID?action=write-review"
if UIApplication.shared.canOpenURL(URL.init(string: rateUrl)!) {
UIApplication.shared.open(URL.init(string: rateUrl)!, options: [:], completionHandler: nil)
}
}
app id를 알고 계십시오. id 필드 뒤에 있는 app url의 숫자입니다.
이와 같은 것: https://itunes.apple.com/app/id148688859, 그러면 148688859가 당신의 앱 아이디입니다.
그런 다음 올바른 앱 ID https://itunes.apple.com/app/idYOUR_APP_ID?action=write-review 을 사용하여 이 URL로 리디렉션합니다.
언급URL : https://stackoverflow.com/questions/3124080/app-store-link-for-rate-review-this-app
'source' 카테고리의 다른 글
asp.net 회원 자격 이전 비밀번호를 모르고 비밀번호 변경 (0) | 2023.06.10 |
---|---|
어떻게 UBSan 보고서 gdb를 중단하고 계속할 수 있습니까? (0) | 2023.06.10 |
Oracle 12c에서 SQL 쿼리의 결과를 JSON으로 반환합니다. (0) | 2023.06.10 |
C 다중 매크로의 사전 프로세서 테스트 정의 (0) | 2023.06.10 |
VBA를 사용하여 Excel 시트를 현재 디렉토리에 저장 (0) | 2023.06.10 |