Giter Club home page Giter Club logo

armchair's People

Contributors

ari3l avatar arturolee avatar b-raines avatar bg-stripe avatar coneybeare avatar csr avatar dbolella avatar gershwin88 avatar inket avatar jagcesar avatar kcsdad avatar martinmoizard avatar masgharneya avatar messi avatar metasmile avatar nickoneill avatar oliverziegler avatar phimage avatar plivesey avatar samwize avatar tarikozket avatar tuannguyenanh177 avatar weakfl 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

armchair's Issues

Armchair.debugEnabled(true) not working

My project is configured to enable debug:

  • Armchair.debugEnabled(true) added to my code
  • corresponding "-DDebug" added to my Xcode project

On this issue #29 problem has been solved for Cocoapods. But what about Carthage?

Carthage with specified version

Hey!

When I write this in my Cartfile:

github "UrbanApps/Armchair" == 0.1.2

I can't deploy my app to a device. It looks like carthage does something "smart" by downloading the .framework-file attached to that tag. The .framework file in this case has been built by an older compiler (probably a previous version of xcode), and hence I can't deploy it :(

So my question is, why is there a .framework file attached to the tag? And could we get rid of it?

Feature Request: Different significant events

In many of my apps, the owner requested that the app review popup shows in specific scenarios: The user viewed "x" number of screens, and has gone through one/more specific actions.

You can't cover these cases just by using a generic significant event. Because of this, I'd have to override the behaviour for Armchair and only trigger the popup manually, when all conditions are met, thus a lot of code to handle.

A good solution would be to use events per category and add the minimum number of each category in order to trigger the popup.

Thanks

Not able to install 0.1.2 via cocoapods

First thank you for putting this library out there, I love the simplicity and documentation. I see a couple of methods to reset counters not present in 0.1.1 but I'm unable to install 0.1.2 via cocoapods.

I get the error below when trying a pod install

[!] Unable to satisfy the following requirements:

- `Armchair (~> 0.1.2)` required by `Podfile`

None of your spec sources contain a spec satisfying the dependency: `Armchair (~> 0.1.2)`.

You have either:
 * out-of-date source repos which you can update with `pod repo update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.

Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.

Any chance there's an upcoming update for cocoapods?

iOS 7

It doesn't work with iOS 7?

userHasRatedCurrentVersion private

Hey there !

In my App I display a rate button, I want to hide that button if the user already rated the actual version of the app. Looking around I found this func userHasRatedCurrentVersion which will work great but turns out it's private and there is no public access in the actual API to perform such validation.

Maybe I'm missing some another way to do this?

Thanks!

Xcode Errors

I'm receiving multiple errors while trying to validate my app. Any help would be awesome!
screen shot 2014-10-13 at 5 29 12 am

How regular?

When the library will show the first alert with default settings? ( Armchair.appID("12345678") )

Error when running on real device

Hi,

Just installed the Framework as shown in the video. When running on the simulator it works fine.

When I try and run it on a real iOS device though I the the following errors.

screen shot 2015-05-08 at 15 34 30

screen shot 2015-05-08 at 15 34 37

I've tried it on Xcode 6.2 and the latest 6.3 release.

Any ideas?

Thanks,
Anthony

Cocoapods?

cocoapods supports swift libraries now

Doesn't work with Objective-C

I just tried different approaches to get Armchair running in an Objective-C project but I wasn't successful. Please either add instructions on how to get Armchair running in Objective-C projects or add a clear statement that Armchair only supports Swift projects in the requirements of the README.

Missing load commands

I am getting this error from iTunes Connect after uploading to App Store and I haven't been able to figure out how to resolve it:

"Missing load commands - The executable at '/Payload/Affection Connection.app/Armchair.bundle/Armchair' does not have the necessary load commands. Try rebuilding the app with the latest Xcode version. If you are using third party development tools, contact the provider."

Any ideas on how to proceed are appreciated!

Way to reset all counters

Is there a way to manually reset all counters (uses, significantEvents, etc)? I don't want to change the thresholds, just reset all counters.

No module named Armchair

After following the installation steps exactly, I still cannot import Armchair, and Xcode is giving an error - No such module 'Armchair'

I'm not really sure where to go from here. I'm using the latest Xcode and latest OSX.

Localization does not work with cocoa pod

Same as #42
using pod to get Armchair as a dependency, but the alert is always in English
Has this something to do with the swift+pod+framework issue?

Any help would be very appreciated.
Thanks

swift 3

any plan to migrate the pod to swift 3 syntax?

Trouble with versions ?

I installed Armchair via cocoapods. The installation worked fine. I do have a couple of issues. It seems that the version that is installed is not the latest version. Example

In the documentation is referred to this method:

Armchair.ratingConditionsHaveBeenMet() -> Bool

This method is 'private' in the delivered code and therefore not reachable.

Also, the KeyDeclinedToRate returns 'true'. This was never set, how is that possible ? It seems to me that this state does not allow to show the rating prompt.

Any comments / advice ?

Only using significant events

Hi there,

Say I only want to use the significant event tracker and disable the daysUntilPrompt and usesUntilPrompt notifications. Does setting these to 0 disable similarly to the remind functionality?

ratingConditionsHaveBeenMet() not public

The function ratingConditionsHaveBeenMet() is not public. It would be nice to be able to access this function to present any custom messages to the user before showing the rate alertview

Remind button always shows if remindButtonTitle is set

Hey!

Let me start of by thanking you for writing this. Much love.

I ran across a bug and wanted to report it, not sure if I'm missing something. If it's a bug I'll gladly fix it and send a PR.

If daysBeforeReminding is set to zero and remindButtonTitle is set, the remind Button appears in the rate pop up. The bug seems to be in showsRemindButton()

showsRemindButton() should return false if daysBeforeReminding is set to zero.

After viewing the modal view (rate, later, no) nothing..

Hello,
I trying to work with your framework.
If I put showPromptIfNecessary in a normal view all work fine.
But if I put the same code inside a navigation controller, I saw the modal view asking me what I want to do, but nothing happens after pressing Rate.
What could I look at to fix this?
Many thanks,
Massimo

Swift 1.2 compatibility

Hello,

I updated XCode to 6.3 today, which includes Swift 1.2, and that seems to have broken Armchair. Several of the errors I think I was able to fix myself (implicitly casting NSString into String is no longer allowed, it seems), but I'm getting a few errors which, frankly, I'm not knowledgable enough to fix.

All of these are in Armchair.swift, so far.

  1. public class StandardUserDefaults: ArmchairDefaultsObject renders "Type StandardUserDefaults does not conform to protocol ArmchairDefaultsObject.
  2. private var userDefaultsObject:ArmchairDefaultsObject? = StandardUserDefaults() renders "StandardUserDefaults is not convertibel to ArmchairDefaultsObject?"
  3. let currentVersion = NSBundle.mainBundle().objectForInfoDictionaryKey(kCFBundleVersionKey) as? NSString renders "Type of expression is ambiguous without more context."

I'm going to do my best to get some answers for these, but I thought it might be helpful for you to know (and maybe you have some quick solutions).

How exactly do you set Debug flags? (Solved! Implementation explained here with pictures).

I've tried about 3 different methods of trying to add the -DDebug flags to allow testing of the Armchair prompts. No matter what I've tried i get the "Debug is disabled on release builds. If you really want to enable debug mode, add "-DDebug" to your Swift Compiler - Custom Flags section in the target's build settings for release" message when the app starts. Am i doing anything wrong?

What I have tried so far:

  1. I thought I had found the Custom Compiler Flags area in the Pods Project Settings (images below), but Armchair rating prompt is still not showing and now i get the above "Debug Warning" message 2 x when the project builds.

screen shot 2016-05-18 at 4 48 07 pm

screen shot 2016-05-18 at 4 47 49 pm

  1. I also tried this ruby script in my podfile to set the Debug flags for the cocoapods when the pods are installed. Again no changes in Armchairs' error message when i build the app.

  2. I found and explored the Schemes area and can confirm that i'm DEFINITELY building and running the app in debug mode, not release mode (and yet still get that message each time which suggests Armchair thinks i'm running a release build).

screen shot 2016-05-18 at 7 34 46 pm

  1. In the end, I actually had to unlock and edit the Armchair.swift file so that debug mode is set regardless of whether the Debug flag is actually recognized [Manager.defaultManager.debugEnabled = debugEnabled ]. Obviously I know this is not how i'm supposed to do this and will of course revert the file after, but this was seriously the only way I found to test the Armchair prompts. And once i made this change, Armchair debug mode worked perfectly and I was able to tweak the rating prompt.

So if anyone has feedback or advice on what I might be doing wrong or why Armchair isn't recognizing my debug flags when set in the Pods Build settings, that would be very helpful.

About my system: Xcode 7.3, building for iOS 9.3 and testing on Simulator iPhone 5S.

Feature Request: Add option for feedback if user doesn't like the app

Here and here I saw two newer examples of such frameworks like this but they both have a great new addition to the classic approach of just asking users for a rating:

They add the ability to let users who don't like specific parts directly give feedback instead of rate the app. This has to advantages: It helps to get feedback from users to improve the app and leads to less negative ratings.

Could we add such a feature into Armchair as well? I would imagine an option named "enableTwoFactorProcess" and if the user chooses a low rating (or dislikes the app) then Armchair opens a specified email address to send feedback to as a default option. As an addition users might get an option to use their own feedback implementation.

What do you think?

Carthage support does not work

Adding the following line on Cartfile:
github "UrbanApps/Armchair"

This lead to an error on Cartage update:
No tagged versions found for github "UrbanApps/Armchair"

Carthage: issue with error "dyld: Symbol not found: __TMPdCSs18_HeapBufferStorage"

Environment references:
Carthage version: 0.6.12
xcodebuild -version: Xcode 7.3 Build version 7D175
--no-build? no
--no-use-binaries? no
--use-submodules? no

Cartfile:
github "UrbanApps/Armchair"
Cartfile resolved:
github "UrbanApps/Armchair" "0.1.2"

Carthage Output:
<..>$ carthage update
*** Fetching Armchair
*** Downloading Armchair.framework binary at "0.1.2"
*** xcodebuild output can be found in /var/folders/xx/zhysw05j1pn9jw3vypwb3rrw0000gn/T/carthage-xcodebuild.ky9ANZ.log```

Armchair.framework is in Xcode in sections:
• Link Binary With libraries
• Copy Bundle Resources
• Embed Frameworks, with Code Sign On Copy switched on
• Build Rules (SCRIPT: /usr/local/bin/carthage copy-frameworks for source files : $(SRCROOT)/Carthage/Build/iOS/Armchair.framework. The folder exists with the framework in)

I was having at first an issue with an 'image not found' message as I missed to add the framework library Armchair in the Embed Frameworks section of Build Phases (Xcode 7.3).
Done that I was happily waiting the sw run but I also got an unexpected 'symbol not found' error message:
dyld: Symbol not found: __TMPdCSs18_HeapBufferStorage Referenced from: /Users/<..>/Library/Developer/Xcode/DerivedData/JotAgenda-gazubqkikzwwstckckciztnqufsb/Build/Products/Debug-iphonesimulator/Armchair.framework/Armchair Expected in: /Users/<..>/Library/Developer/CoreSimulator/Devices/C61B939F-2F90-4314-AA8C-B36C15E2D8C0/data/Containers/Bundle/Application/058F8711-F90C-48FC-A7B4-31D0298D97B9/JotAgenda.app/Frameworks/libswiftCore.dylib in /Users/<..>/Library/Developer/Xcode/DerivedData/JotAgenda-gazubqkikzwwstckckciztnqufsb/Build/Products/Debug-iphonesimulator/Armchair.framework/Armchair
Am I missing something else? Is it an issue related to the framework generation ?
I also attach the Carthage zipped folder coming out the update command.
BTW: the checkout folder is not generated.
Is that correct ?.
Thank you for any help.
Stefat

Carthage.zip

#getRootViewController returns nil

When looping through window.subviews the next responder object for the 2 subviews returned were both windows (instead of a UIViewController). Moved call to showPrompt() to a different area as a temporary solution.

Call to #userDidSignificantEvent was taking place upon dismissing an AVPlayerViewController which was presented modally over a UIPageViewController (that was embedded within a UINavigationController).

I didn't spend too much time diagnosing this, but my assumption is that the presented view controller had not been fully dismissed yet, causing the unexpected behavior... If I have time later, I'll try to dig in and determine if that was actually the cause.

Check for Simulator not working

I think beginning with iOS 9 this check

UIDevice.current.model.range(of: "Simulator") != nil

will never succeed and so current developers will not get console logs and possibly wonder why nothing happens when starting to rate.

Possible alternate methods are stated here

Remind Later issue

When I click this this (Remind Later) button iTunes or StoreKit opens anyway.
Also it isn't enough debug mode only. It appears only when I placed:

Armchair.debugEnabled(true)
Armchair.userDidSignificantEvent(true)

Release build crash, Swift 1.1, Xcode 6.2, works ok with Debug builds

I am using Armchair framework as the app review manager for my app. The app is written in Swift (complies with Swift 1.1) and I am running Xcode 6.2 with base SDK 8.2 and deployment target of 8.0.

I am facing a curious issue while doing a release/ad-hoc build of the app- the app crashes right after getting started. I symbolicated the crash logs and here's what I see-

Version:             1 (1.0)
Code Type:           ARM-64 (Native)
Parent Process:      launchd [1]

Date/Time:           2015-05-08 13:01:54.192 -0700
Launch Time:         2015-05-08 13:01:52.013 -0700
OS Version:          iOS 8.3 (12F70)
Report Version:      105

    Exception Type:  EXC_BREAKPOINT (SIGTRAP)
    Exception Codes: 0x0000000000000001, 0x00000001007643d8
    Triggered by Thread:  0

    Thread 0 name:  Dispatch queue: com.apple.main-thread
    Thread 0 Crashed:
    __TFC8Armchair7ManagerP33_0F5394B43958D8E2A7FE7B1C7DE959CE18defaultReviewTitlefS0_FT_SS Armchair.swift:1566
    __TFC8Armchair7ManagerP33_0F5394B43958D8E2A7FE7B1C7DE959CE18defaultReviewTitlefS0_FT_SS Armchair.swift:695
    __TFC8Armchair7ManagerP33_0F5394B43958D8E2A7FE7B1C7DE959CE15showRatingAlertfS0_FT_T_ Armchair.swift:699
    __dispatch_call_block_and_release + 20
    __dispatch_client_callout + 12
    __dispatch_main_queue_callback_4CF + 1604
    ___CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
    ___CFRunLoopRun + 1488
    _CFRunLoopRunSpecific + 392
    _GSEventRunModal + 164
    _UIApplicationMain + 1484
    11  <MyAppName>                 0x0000000100292560 0x1000e8000 + 1746272
    _tlv_get_addr + 176

When I run the app on simulator/run directly on the device from Xcode, everything runs perfectly.

Any pointers from anyone? Do I need to upgrade to XCode 6.3? Is it a known issue?

Module Not Found?

When I go to archive the application, I get an error that the module is not found. I found this answer on StackOverflow here, but I am unsure how to follow the solution. Is there any fix to this? Thanks!

Debug message

I added -DDebug flag to my project.

screen shot 2016-03-30 at 16 19 49

Then in code did:

#if Debug
     Armchair.debugEnabled(true)
 #endif

But always get message:

[Armchair] Debug is disabled on release builds.
[Armchair]   If you really want to enable debug mode,
[Armchair]   add "-DDebug" to your  Swift Compiler - Custom Flags
[Armchair]   section in the target's build settings for release

Source:

public func debugEnabled(debugEnabled: Bool) {
#if Debug
    Manager.defaultManager.debugEnabled = debugEnabled
#else
    print("[Armchair] Debug is disabled on release builds.")
    print("[Armchair]   If you really want to enable debug mode,")
    print("[Armchair]   add \"-DDebug\" to your  Swift Compiler - Custom Flags")
    print("[Armchair]   section in the target's build settings for release")
#endif
}

Armchair alert doesn't show up

Hi,

I set Armchair this way:

            Armchair.appID("1044050208")
            Armchair.significantEventsUntilPrompt(0)
            Armchair.daysUntilPrompt(0)
            Armchair.usesUntilPrompt(3)

And expected Armchair will show up on the third sessions, but nothing happened.

Localization doesn't work with Carthage installation

Hi,

I try to use armchair. I use this in my AppDelegate

    Armchair.appID("12345678")

    // Demo mode
    Armchair.showPrompt()

And I added a new language under the project tab. The prompt is always shown in english. Any hints?
Thanks for helping in advance.

xcode warning while archiving

I am getting this 'warning: embedded dylibs/frameworks only run on iOS 8 or later' while archiving project but it is working properly on iOS 7..so any ways to fix this warning or can I ignore this ?

showPrompt() not working, no error being logged

We're setting up Armchair in our app using the very simple 1-step process. Our App ID is 100% correct, I've tried filling out additional fields, and I've tried setting debugEnabled(true) as well.

Calling showPrompt() provokes no response. onWillPresentModalView and shouldPromptClosure are both not firing either.

We have no way of seeing what error is being thrown or what is going on. We'd really love to use your SDK and we're trying to release ASAP, but if we can't figure this out we might need to turn to another product in the meantime until we can get this sorted.

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.