Comments (20)
The country code and app name must be present in the URL but are ignored - only the ID needs to change. Also mt=8
is not required. I.e. this works:
itms-apps://itunes.apple.com/xy/app/foo/id{your_app_id}?action=write-review
Tested on iOS 11.0 (15A372).
from irate.
@dpa99c
I fixed this issue for my app (im not using iRate) with using an url like tms-apps://itunes.apple.com/app/twitter/id333903271?mt=8&action=write-review
. I didnt add a language code but mt=8
is still necessary. Without mt=8
the App Store app will show the Can't connect to App Store error message. I tested on iPhone 5s iOS 11.0.
from irate.
@zapjonny you can override the URL without forking iRate by adding this to your setup code:
[iRate sharedInstance].ratingsURL = ...
from irate.
Is this using the latest version of iRate? The URL changed recently.
from irate.
I tried it an hour ago, updated to the version 1.12.1 via Cocoapods
from irate.
I use version 1.12.1 via Cocoapods and confirm.
I get the message 'Cannot Connect to App Store' in the App Store app when calling [[iRate sharedInstance] openRatingsPageInAppStore];
from irate.
The URL seems not to work anymore with the action=write-review
parameter (I can reproduce the issue in Safari). Eg the App Store doesn't support opening (scrolling) to the new "Ratings & Reviews" section.
from irate.
I confirm this is an issue. Even using the https-based URL (e.g. https://itunes.apple.com/app/blabla/idXXXXXX?action=write-review) fails to load.
The documentation is still suggesting to use action=write-review
, so I think it’s Radar time.
In the meantime, apps should not open the “write review” URL on iOS 11, just the basic App Store link.
from irate.
I confirm I have the same issue on the iOS 11 GM seed. How can we fix this?
from irate.
Will this repo be fixed soon?
How can we fix this in the meantime?
from irate.
Update:
First, sorry my bad, I had locked iRate below version 12 in my podfile.
Fixing that, I think I know what was going on. I probably locked iRate below 12 in order to avoid the iOS 10.3+ way of opening the in-app rate alert (I don't remember the reason for this, but hey).
In my app I had two cases where I used iRate.
- When you do an in-app action enough times, the alert "wanna rate?" popped up.
- In the options menu, I had an extra option "rate now" which directed the user to the app store review page, so the user could rate easily at any time.
Now, the iRate.sharedInstance().openRatingsPageInAppStore()
is still broken for iOS 11.0 users.
However iRate.sharedInstance().promptIfNetworkAvailable()
will work, if we accept the 10.3 in our app. I guess that should be the proper way since iOS 10.3 anyway and we just have to live with it.
So at this point, I assume that for me, 1 should work if I use the latest iRate, and 2 will work if use iRate.sharedInstance().promptIfNetworkAvailable()
instead of iRate.sharedInstance().openRatingsPageInAppStore()
which won't work on iOS 11.0.
from irate.
Okay, I guess even that's not the end of the story. I thought twice and thrice and I guess case 2 above is a no-go since iOS 11.0 (or probably also since 10.3, in a way).
First, it doesn't make sense to prompt the user in the same way in 2 as I do in 1, I'd want to open the review page below 10.3 and open the in-app SKStoreReviewController from 10.3 and up. However with the current iRate there is no way to do that, unless possibly if we fix it so we can call [self promptForRating: NO];
.
But the discussion doesn't end there because on iOS 10.3+ that would ultimately call https://developer.apple.com/documentation/storekit/skstorereviewcontroller/2851536-requestreview which, as is stated in the docs, might or might not open the review UI. Which is in terms with how Apple wants the review experience to work...
I guess I will have to advocate to my director to remove case 2 and only use case 1 above - rate upon some rare user interaction.
Also in the long run I guess Apple is specifically wanting to shoot down iRate and similar libraries that show review popups.
from irate.
A workaround is to include a two-letter country code and app name in the URL, such as this:
https://itunes.apple.com/us/app/twitter/id333903271?mt=8&action=write-review
or
itms-apps://itunes.apple.com/us/app/twitter/id333903271?mt=8&action=write-review
The full URL for your app can be obtained from https://linkmaker.itunes.apple.com/
This successfully opens the "write a review" interface in the iOS 11 App Store. This workaround is not ideal however as changing the app title would also change its URL, thus breaking the workaround. Hopefully Apple will fix this soon for the shorter URL.
See rdar://34498138
from irate.
^ That one really works... so for a fast fix, I guess I could go with it if iRate was updated with this. Will iRate be updated or will I have to fork this? 🙄
from irate.
Maybe you can fork, and offer a pull request 😉
from irate.
@nicklockwood Good one! It works ✌️
I’ll use this and go back to iRate below 12 for minimum code changes.
from irate.
Can confirm workaround to be working, thanks
from irate.
Confirmed. Thanks
from irate.
Thanks @neave. This works!
from irate.
OK. And this also works on iOS 10 I just tested.
from irate.
Related Issues (20)
- iRate will be allowed for iOS 11? HOT 2
- useSKStoreReviewControllerIfAvailable is ignored HOT 4
- Significant event issue? HOT 5
- SKStoreReviewController is not used in manual prompt request HOT 2
- Use `+initialize` instead `+load` to instantiate iRate singleton HOT 3
- Submit button disabled on SKStoreReviewController HOT 4
- Localizations bug with Chinese simplified and traditional
- Can you add prompt to update on new version available HOT 2
- How should I reset iRate totally?
- iRate Not show HOT 1
- Show Review Alert only if user has not submitted any review?
- ratedThisVersion not set if using SKStoreReviewController? HOT 4
- iOS Swift : Message and Message Title are not working
- iRate Delegates are Not getting Called
- iOS 11 (GM) prompts at launch even though promptAtLaunch set to NO & Submit button fails HOT 8
- Crash when sending `window` message to `UIApplicationDelegate`
- 您好,为什么弃用不维护了啊? HOT 2
- iRate did not prompt for rating because the app was first used less than 10 days ago HOT 1
- SwiftPM Support / swift package init
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from irate.