Giter Site home page Giter Site logo

urbanapps / uaappreviewmanager Goto Github PK

View Code? Open in Web Editor NEW
802.0 802.0 117.0 716 KB

UAAppReviewManager is a simple and lightweight App review prompting tool for iOS and Mac App Store apps. It's Appirater all grown up, ready for primetime.

License: MIT License

Objective-C 87.89% C 1.26% Ruby 2.62% Shell 8.23%

uaappreviewmanager's People

Contributors

aaronraimist avatar bitdeli-chef avatar briankenny avatar coneybeare avatar dxdc avatar hjue avatar imokhles avatar pmarnik avatar readmecritic avatar siburb avatar ssimonov avatar wpackard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uaappreviewmanager's Issues

showPromptIfNecessary doesn't show the prompt

showPromptIfNecessary doesn't show the prompt.

Here's my code:

+(void)initialize{
    [AppDelegate setupUAAppReviewManager];
}

+(void)setupUAAppReviewManager {
    [UAAppReviewManager setAppID:APPSTORE_ID];
    [UAAppReviewManager setDebug:YES];
}

-(void)applicationDidBecomeActive:(UIApplication *)application
{
    [UAAppReviewManager showPromptIfNecessary];
}

but if I call showPrompt it shows every time

Question about affiliate codes

I am getting pushback from mgmt as to why we cannot set the affiliate code and affiliate campaign code to nil/empty, and therefore not included in the review URL. If we explicitly want to set those vars to nil or @"", the '&at=' and '&ct=' parameters should not be appended to the URL, but nil/empty end up using the UAAppReviewManager codes.

Your thoughts?
Thanks,
Ken

Listen for application lifecyle notifications

This is a discussion rather than a issue per-se. But why doesn't the app store review manager simply listen for various lifecycle notifications like (UIApplicationDidFinishLaunching) and automatically call [UAAppReviewManager appLaunched] etc to increment the stats? To handle the canPrompt param, simply have a method called '[UAAppReviewManager promptIfNeeded]' which user can call at convenient times (may or may not be app launch)

Update with [SKStoreReviewController requestReview]

I recently updated an App with a small change to UAAppReviewManager

- (void)showRatingAlert { if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"10.3")) { [SKStoreReviewController requestReview]; } else {

Rather than replacing UAAppReviewManager I see this new iOS review feature as an excellent addition.
UAAppReviewManager handles the timing and re-prompting really well even though the visual prompt is no longer required for >=10.3
The results have been amazing. I'm seeing a 10x increase in reviews, all positive.
As a feature request it would be nice to see this added in especially since UIAlertView is now throwing deprecation warnings.

setDebug: relying on DEBUG prevents from using with other languages

"determined when DEBUG preprocessor macro is not defined"

I'm using UAAppReviewManager as a vendored project in RubyMotion, however the DEBUG macro is not set, so I had to manually edit the code to remove the #ifdef DEBUG. It would be cool to omit the macro in the master branch.

Previously rated does not persist

If user sets: [UAAppReviewManager setShouldPromptIfRated:NO];

then, after next version, this will persist as follows:
UAAppReviewManagerKeyDeclinedToRate: NO
UAAppReviewManagerKeyPreviousVersionDeclinedToRate: YES

however, after the next version, it gets reset back as if the user had never rated it.
UAAppReviewManagerKeyDeclinedToRate: NO
UAAppReviewManagerKeyPreviousVersionDeclinedToRate: NO

I believe this should be a bug and that UAAppReviewManagerKeyPreviousVersionDeclinedToRate should persist.

From examining the code, this appears to also be an issue in ArmChair

Possible feature addition: Make update alerts have different copy

One thing I've seen some apps do is display slightly different copy when asking users to re-rate after an update instead of the same initial copy. Perhaps something to indicate there was an update. I think this is less confusing to users who have already rated the app and they will be more likely to do it again rather than thinking the alert is just a bug since they remember rating it earlier. Could be a set of new methods and defaults for this other alert. What do you guys think?

No errors but lib doesn't work as it does with Cocoapods integration

Hi Matt,

I have this strange issue.

I've integrated UAAppReviewManager with Cocoapods, done what I had to do with my code to accomodate it and it worked like charm. Everything as expected.

What happened was that I wanted to make it work without CocoaPods integration, so that not only don't have to resort to it but mostly to keep my custom localizable strings as I need them.

So, I've integrated the files as supposed, (had some 64 arch related errors, but I fixed them with -fobjc-arc and adding StoreKit.framework) so I build everything without errors.

What happens is that it doesn't work. I've added a NSLog to check if that method was running and it is but now the alert doesn't appear.

There are no errors, warnings, etc., nothing.

Do you have any idea, what might be happening?

Thank you so much for your work and any help in advance.

Best,
Catarino

"No, thanks" button showing at top, and "Rate" button at bottom: how to reverse the order?

For me the alert shows up with the following three options vertically listed from top to bottom in this order:

No, thanks
Remind me later
Sure

Is there a way to have the Rate button be at the top of this list and the Cancel button at the bottom of this list? Can that be achieved somehow through the UAAppReviewManager API now, or would that require a code change to UAAppReviewManager?

Thanks!
Erik

In-app review and iOS 7

Are we certain that reviewing using the in-app SK solution doesn't work anymore in iOS 7? Has it been tested for in-store apps? Obviously there is no documentation, but I can imagine Apple disabling this button for non-purchased builds. Note how Apple now started keeping the receipt in the bundle, too. So it could be using that to check.

showPromptIfNecessary doesn't compile

+ (void)showPromptIfNecessary { [[UAAppReviewManager defaultCenter] showPromptIfNecessary:YES]; }

should be:

+ (void)showPromptIfNecessary { [[UAAppReviewManager defaultManager] showPromptIfNecessary:YES]; }

Replaced defaultCenter with defaultManager

getRootViewController returnning nil

Hi,

I´m having problerm with this method: getRootViewController.
It´s returning nil and the modal to rate on Apple Store is not showing.
Could you help on this?
Thanks

Add support for block callbacks for deciding whether to prompt if rated according to version

Currently, there is "setShouldPromptIfRated:" and in the comment, it is said to pass YES value for major versions and NO for minor versions.

I propose the following optional API:

typedef BOOL (^UAAppReviewManagerShouldPromptBlock) (NSString* previousVersion, NSString* currentVersion);

  • (void)setShouldPromptBlock:(UAAppReviewManagerBlock)shouldPromptBlock;

If this is set, before prompting, a call will be made to the user's passed block to determine whether the current build is minor or major (or any other logic).

Thanks,
Leo

Affiliate Campaign Code URL causes EXC_BAD_ACCESS

occurs on line #1017 in reviewURLString()

reviewURL = [reviewURL stringByReplacingOccurrencesOfString:@"AFFILIATE_CAMPAIGN_CODE" withString:[NSString stringWithFormat:@"%@", self.affiliateCampaignCode]];

self.affiliateCampaignCode is pointing to a junk memory address, despite being set properly prior to calling reviewURLString()

I was using your default values for Affiliate and Campaign codes.

Make UAAppReviewManager more inheritance friendly

Use [self class] rather than UAAppReviewManager explicitly.

Also maybe separate the class convenience methods into a separate file for those who want it and expose the actual instance methods for subclasses to override.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.