Code Monkey home page Code Monkey logo

apptentive-ios's People

Contributors

andrewlew1s avatar atnan avatar frankus avatar johnezang avatar jparise avatar kevinvanderlugt avatar kgn avatar marcarl avatar matthewcallis avatar msaffitz avatar owenfi avatar pkamb avatar planetaryscale avatar rganguly avatar skykelsey avatar soffes avatar tyork avatar weeebox avatar wooster 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apptentive-ios's Issues

Modal window closes after feedback

After calling this:

ATConnect *connection = [ATConnect sharedConnection];
[connection presentFeedbackControllerFromViewController:self];

From a modal view controller it closes the modal and any new modals will not show up afterwards.

Message Center always in portrait

Hi,
Message Center always shows in portrait even if app is in landscape orientation. Guess this should be an easy fix, but don't know where to look for (using Xcode 4.62)

screens in iOS7

Hello,

Some UIViewControllers does not look good (broken) in iOS7 or either does not respect the new iOS7 look and feel. For example, the message centre's title, or the feedback dialog.

Thanks very much!

Ezequiel Aceto

Linker error when using CocoaPods

I added Apptentive to my app as a pod and wrote the initial code to start using Apptentive. However when I build my app, I get the following link error:

Undefined symbols for architecture i386:
"OBJC_CLASS$_ATConnect", referenced from:
objc-class-ref in EvstAppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I already tried to start everything from scratch & I cleaned my complete pod configuration. But the error's still there. I'm using a lot of other pods but I never ran into this kind of problem.

Any ideas on how I can fix this?

No way to programmatically dismiss the FeedbackViewController

Unless I'm crazy and I just don't see it, there is no public API for dismissing the FeedbackViewController as of version 0.4.7.

I can present the view controller:

[[ATConnect sharedConnection] presentFeedbackControllerFromViewController:someViewController];

But I do not see a way to dismiss it. We have a scenario where an incoming push notification triggers a deep link into our application and I want to make sure that when this deep linking occurs that we ask the user if they would like abandon entering feedback and if so dismiss the feedback view controller appropriately.

I thought that the absence of a call to dismiss the feedback view controller in the api indicated that it was modal and could be dismissed using either dimissModalViewControllerAnimated: or dismissViewControllerAnimated:completion: but these do not appear to work. I see now from looking at the code in GitHub that views are being added into the root window (mostly to support screen capture I think) and that currently the only dismissal is by user interaction with the cancel button.

dismissMessageCenterAnimated does not call completion block in some cases

Currently, there is no way to easily detect if the ATConnect window or view controller is being shown. Consequently, the only way to ensure that they are not being shown is to call dismissMessageCenterAnimated:completion and wait for the completion block to be called. Unfortunately, in the case where ATConnect is not in use, the completion block is never called. This makes it quite difficult to close ATConnect in response to an external event such as the receipt of a local or remote notification.

Ideally ATConnect would provide a delegate interface so that an application can detect when the ATConnect UI is no longer being shown. The delegate could provide callbacks for various interactions with the user, including dismissal. This can be useful for applications that gather usage statistics. The MFMailComposeViewControllerDelegate in iOS's MessageUI library is a good example of callbacks that would be useful for tracking the state of ATConnect.

Slight ambiguity/typo in getting started instructions

From your instructions in the read me:

Building for iOS devices first works around a bug in Xcode 5.

  1. In the upper right-hand corner of your Xcode window, click on your project name.
  2. Select Apptentive Resources.
  3. Click to the right of the arrow next to Apptentive Resources.
  4. Select iOS Devices.
  5. Under Project in your Mac's menu bar, click on Build.

I believe number one should say "Upper left" instead of "Upper right-hand". I think it's also known as the "scheme picker" and can be accessed via the Product > Scheme menu.

Step 5 seems like it's for an old version of Xcode, I think it should be "Product" instead of "Project".

Possible class naming collision with iOS 5 system framework?

Device: iPhone 4
OS: iOS 5.1.1 (does not occur on iOS 6)

I have an app that uses the ApptentiveConnect SDK.
Launching this app from Xcode, I see a concerning message in the console window:

objc[1567]: Class ATMessage is implemented in both /System/Library/PrivateFrameworks/AirTraffic.framework/AirTraffic and /var/mobile/Applications/DFC22D8A-916D-4AE7-AB6E-0FE119633808/HibuSearch.app/HibuSearch. One of the two will be used. Which one is undefined.

Anyone else seen this?

Compilation errors when adding TTTAttributedLabel as a cocoapod

I had our app building fine with the Apptentive pod, but as soon as I added the TTTAttributedLabel pod to our Xcode project, I got the following build errors:

/Pods/apptentive-ios/ApptentiveConnect/source/Message Center/ATAutomatedMessageCell.h:17:40: Unknown type name 'ATTTTAttributedLabel'; did you mean 'TTTAttributedLabel'?
/Pods/apptentive-ios/ApptentiveConnect/source/Message Center/ATAutomatedMessageCell.h:19:40: Unknown type name 'ATTTTAttributedLabel'; did you mean 'TTTAttributedLabel'?
/Pods/apptentive-ios/ApptentiveConnect/source/Message Center/ATTextMessageUserCell.h:20:74: Cannot find protocol declaration for 'ATTTTAttributedLabelDelegate'; did you mean 'TTTAttributedLabelDelegate'?
/Pods/apptentive-ios/ApptentiveConnect/source/Message Center/ATTextMessageUserCell.h:26:40: Unknown type name 'ATTTTAttributedLabel'; did you mean 'TTTAttributedLabel'?

Can anyone shed some light on this?

Thanks upfront.

Linker flag -all_load not required (installation instructions)

I could not use the linker flag -all_load as my project also uses AdMob, and this flag would stop the project from compiling.

From my testing Apptentive works fine with out this flag.

Not sure if this is true, but as of XCode 5 this flag is no longer necessary?

Long response is truncated in message centre on the device

Operator responds to the user via your web. On the user's device (tested with iPhone 4) in message centre the message is truncated, if it is long, say more than 20 lines.

Interesting is, that when reading in landscape, the message is complete - not truncated. Truncation occurs only in portrait.

Unfortunately, this is a showstopper for us. Please fix this.

It happens with your SDK 1.2.1 and 1.2.2. I have not tested with older sdks.

CGContextSetFillColorWithColor

Hello,

I have been testing Apptentative for my iOS app and I found a warning while running on iOS. The log says:

: CGContextSetBlendMode: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

When I look in my code for "CGContextSetFillColorWithColor"I find that the only place it is referenced is in TTTAttributedLabel.m in the method

  • (void)drawBackground:(CTFrameRef)frame
    inRect:(CGRect)rect
    context:(CGContextRef)c

Could you please fix this?

Thanks very much!

Ezequiel Aceto

libApptentiveConnect.a is missing in SDK

Hi, just downloaded this project and also added it via cocoapods.
But i am unable to find this lib - libApptentiveConnect.a , it is also not included in example feedbackdemo

Can you explain or guide how to move forward ??

Crash while using Apptentive library via Cocoapods

I am using Apptentive version v1.2.6 and getting following crash:

*** Assertion failure in -[ATEvent apiJSON], /Users/pkamb/Desktop/Apptentive Code/apptentive-ios/ApptentiveConnect/source/Model/ATEvent.m:52

This is a NSAssert failure. I just cloned the Apptentive code from GitHub repository (https://github.com/apptentive/apptentive-ios.git) and found that in v1.2.7 the code at ATEvent.m:52 is changed to have "ATLogError" instead of NSAssert(s).

But still there are lot of NSAssert(s) in Apptentive code base. The library that I am getting through Cocoapods is having NSAssert(s) ENABLED. It should be release library with "NS_BLOCK_ASSERTIONS" Preprocessor Macros flag set. Setting this flag will DISABLE NSAssert(s) in the release version of library, and thus when others integrate this library in their projects, application will not crash.

This seems like a blocking issue for me, as I cannot release my application with NSAssert(s) enabled.

Let me know if you need more information. You can reach me at:
[email protected]

Regards
Gaurav Agarwal

Release of 1.0.0, updating from 0.4.9

Hi, After this new release, i was interested in updating from 0.4.9 to 1.0.0 .
So, i did it via cocoapods and it shows in the pods list but still not able to use Or include the files can you let me know, the right way of installing it from cocoapods or if something extra is needed to do for this.
Also, please share how to do the SAME WITHOUT cocoapods.

New Delegate and Dismissal API for Interactions UI

From #84:

Ideally ATConnect would provide a delegate interface so that an application can detect when the ATConnect UI is no longer being shown. The delegate could provide callbacks for various interactions with the user, including dismissal. This can be useful for applications that gather usage statistics. The MFMailComposeViewControllerDelegate in iOS's MessageUI library is a good example of callbacks that would be useful for tracking the state of ATConnect.

The current API we provide is fairly limited here, eg:

- (void)dismissMessageCenterAnimated:(BOOL)animated completion:(void (^)(void))completion;

We may have UI that this method call doesn't dismiss, such as ratings flow UIAlertViews, surveys, or upgrade messages.

This issue is for tracking adding new API for dismissing other UI elements that may be on screen, API for determining if there is UI being displayed, and callbacks/delegates for better control of displaying that UI.

/cc @lhasiuk

Crash in "addMetricWithName"

Have integrated apptentive into one app, now working on another app. The thing is, both apps are exactly the same code, only content is different. Apptentive works fine in one, but in the other, I'm getting an exception.

Exception is happening in [ApptentiveMetrics(Private) addMetricWtihName:info] which is being called from addLaunchMetric, which is being fired by "NSFireDelayedPerform".

I'm using the library version so I can't put a breakpoint in this method, but looking at the source it implies that "ATData newEntityNamed@"ATEvent"" is returning something other than an NSManagedObject ^ you then call "setup" on it.

I checked and the bundle is being loaded in the build phases, the library is there, etc. The code is the same between the apps, with only the apptentive API key being different.

2013-10-07 17:50:59.594[7204:a0b] Loading ATWebClient_Metrics_Bootstrap
2013-10-07 17:50:59.595[7204:a0b] Loading ATWebClient_SurveyAdditions_Bootstrap
2013-10-07 17:50:59.596[7204:a0b] Loading ATURLConnection_Private_Bootstrap
2013-10-07 17:50:59.596[7204:a0b] Loading ATWebClient_Private_Bootstrap
2013-10-07 17:50:59.596[7204:a0b] Loading ATWebClient_MessageCenter_Bootstrap
2013-10-07 17:50:59.596[7204:a0b] Loading ATToolbar_Bootstrap
2013-10-07 17:50:59.598[7204:1403] [info] Setting up data manager
2013-10-07 17:50:59.659[7204:3e13] Flurry: Starting session on Agent Version [Flurry_iOS_118_4.2.3]
2013-10-07 17:50:59.779[7204:a0b] -[NSManagedObject setup]: unrecognized selector sent to instance 0x9ea1d00
Description of exception being thrown: '-[NSManagedObject setup]: unrecognized selector sent to instance 0x9ea1d00'

Overriding messaging

We'd like to override some of the messaging that appears in the dialogs. I know we can edit the Localizable.strings in the Apptentive project, but modifying that might make it painful in the future to keep up with updates to the project.

Do you have a better recommended way for clients to override dialog messaging?

README needs cleanup

The README needs some updating when it comes to explaining about how to get the code. It mentions using either git or Cocoapods to get the SDK, but then seems to assume that the user is manually adding the code to their project by telling the user to drag header files in and such further down. Plus the "Setup Xcode Project" step doesn't let the user know that this part is not needed when using Cocoapods. It seems like when Cocoapods support was added, only the one part of the document that mentions it was updated and not the rest. The README should be updated to more accurately reflect what is necessary for what integration method.

Crash while opening message centre

The crash happens only on iOS6 (the same app on iOS7 works fine)

- (void)showApptentiveFeedbackForm {

    ATConnect *connection = [ATConnect sharedConnection];
    [connection presentMessageCenterFromViewController:self];
}

apptentiveios6crash

More localizations

I would love to see the strings localized for more languages. I've been working on an update to one of my apps and had it localized in 10 languages by icanlocalize.com. This app includes Apptentive so when asked if they love the app it could be jarring if the text is in english but the rest of the app is localized. The two languages I would love to see the most are french and german.

unreadCount incremented when typing a message

unreadCount should reflect the number of messages a user has not seen, but in a case I found it is possible to falsely increment unreadCount.

The scenario is: A user begins editing a message in the inputView in the messageCenter class. As soon as the first letter is entered a breakpoint in ATBackend controllerDidChangeContent: will trigger and you can see that unread count goes to 1. (Clearing the text field or leaving the view decrements to zero, as "expected")

The problem is: If the user quits the with characters remaining in the inputView text field then the unreadCount is falsely stuck at 1 (until the next message center load, etc.)

If this is by design I think the inputView should re-populate the previous text on returning to the message center, but I think the unread count should actually either 1. Not increment while editing (or ever, for user driven messages?) or 2. Refresh to the proper value when Apptentive first loads.

Legacy Language Designator warning when validating archive

When using XCode 5 to validate an app archive I get the following warning:

"Legacy Language Designator - The directories located at"

I traced this down to the fact that Apptentive puts it's English localization in a folder called English.lproj which is a deprecated naming convention. The more modern naming is en.lproj.

Allow users to disable StoreKit for app reviews in iOS 6+

Hi Andrew,

Not sure what your thoughts are on this. Currently if you open the app review URL before iOS6, the users are taken directly to the reviews tab in the app store. This obviously takes them out of the app but shows the button to write a review.

If you open in StoreKit, it goes to the app description page. I haven't yet found a way to open the reviews tab in StoreKit.

My thought here would be to add a BOOL that users could set to always open with a URL connection. This is slightly a less elegant way because it takes people out of the app, but its more obvious how to leave a review. Do you think there would be any value always taking the user out of the app to write a review?

If so, I have a patch on my machine but I am not entirely sure yet what is the better user experience.

Cheers!
-Kevin

Xcode build warnings

We always strive to have 0 Xcode compiler warnings when building our app. However since we added the Apptentive pod to our project we have around 100 build warnings related to Apptentive code. A lot of them are related to the use of deprecated iOS symbols/method.
Do you have plans to fix these?

Context exception

Hello,

My app gets the following exception

Context failed to fetch next batch. Expected 1 objects
APP-[ATGetMessagesTask(Private) processResult:]

Binary Image Name Address Symbol

0 CoreFoundation 0x3127ef4b exceptionPreprocess
1 libobjc.A.dylib 0x3b60e6af objc_exception_throw
2 CoreData 0x30fef0fb _faultBatchAtIndex
3 CoreData 0x30feeb4f -[_PFBatchFaultingArray objectAtIndex:]
4 CoreData 0x30ffcfb5 +[NSFetchedResultsController(PrivateMethods) _insertIndexForObject:inArray:lowIdx:highIdx:sortDescriptors:]
5 CoreData 0x30ffcec7 -[NSFetchedResultsController(PrivateMethods) _postprocessInsertedObjects:]
6 CoreData 0x30ff9f9b -[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidChange:]
7 CoreFoundation 0x31241119 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER

8 CoreFoundation 0x311b5257 _CFXNotificationPost
9 Foundation 0x31b9ac2d -[NSNotificationCenter postNotificationName:object:userInfo:]
10 CoreData 0x30ff9813 -[NSManagedObjectContext(_NSInternalNotificationHandling) _postObjectsDidChangeNotificationWithUserInfo:]
11 CoreData 0x30ff97ab -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:]
12 CoreData 0x30ff7e13 -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:]
13 CoreData 0x30ff6b17 -[NSManagedObjectContext save:]
14 APP 0x001cf1f9 -[ATGetMessagesTask(Private) processResult:]
15 APP 0x001cebe1 -[ATGetMessagesTask at_APIRequestDidFinish:result:]
16 APP 0x001a8119 -[ATAPIRequest connectionFinishedSuccessfully:]
17 Foundation 0x31bb2d6d -[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:modes:]
18 Foundation 0x31bb673d -[NSObject(NSThreadPerformAdditions) performSelectorOnMainThread:withObject:waitUntilDone:]
19 APP 0x00198e4f -[ATURLConnection connectionDidFinishLoading:]

Add ability to overwrite or pass in appName in AppRatingFlow

Not sure what your thoughts are on this?
My bundle display name is shortened to fit on the screen, I was going to modify the AppRatingFlow to return a different name for [self appName] so that I can control the name used in the UIAlertViews. Or maybe have the ability to use CFBundleName rather than CFBundleDisplayName

I could submit a pull if you are interested in one of the methods.

Showing the rating dialog from a modal

Warning: Attempt to present <SKStoreProductViewController: 0x21171e10> on <UINavigationController: 0x1fdcb470> whose view is not in the window hierarchy!

This is fixed in this commit, though it is only fixed for iOS 5. If iOS 4 is still supported modalViewController could be used but I don't have iOS 4 to test against.

kgn@aa6e1d2

SQLite error in Apptentive DB

In my application I got the following exception

Fatal error. The database at /var/mobile/Applications/95709F07-B065-47F4-B338-CE48599EAA37/Library/Application Support/com.apptentive.feedback/ATDataModel.sqlite is corrupted. SQLite error code:11, 'database disk image is malformed'
APP-[ATAbstractMessage updateWithJSON:]

The stack trace is:

22 APP 0x001354fb -[ATAbstractMessage updateWithJSON:]
23 APP 0x001372dd -[ATTextMessage updateWithJSON:]
24 APP 0x00134f01 -[ATAutomatedMessage updateWithJSON:]
25 APP 0x00134ddf +[ATAutomatedMessage newInstanceWithJSON:]
26 APP 0x0013264f -[ATGetMessagesTask(Private) processResult:]
27 APP 0x001320c9 -[ATGetMessagesTask at_APIRequestDidFinish:result:]
28 APP 0x0010b6df -[ATAPIRequest connectionFinishedSuccessfully:]
29 Foundation 0x2f1b100d
30 Foundation 0x2f1b49c5
31 APP 0x000fc43f -[ATURLConnection connectionDidFinishLoading:]

How can I fix this in the following release of the app?

Persistent store init issue

Hi,

I am running into a problem when setting the API key.

ATDataManager.m throws an exception on line:

persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];

Uncaught exception: Cannot create an NSPersistentStoreCoordinator with a nil model

Any ideas?

Calling dismissMessageCenterAnimated can break future calls to presentMessageCenterFromViewController

Steps to reproduce:

  1. Bring up message center in an application with a call to presentMessageCenterFromViewController.

  2. Navigate to Contact Settings screen.

  3. Arrange for a call to dismissMessageCenterAnimated:NO completion:^{} from another pathway in the app, such as receipt of a local notification or the firing of a timer.

  4. Try invoking presentMessageCenterFromViewController again. The console displays a message: " [info] Apptentive message center controller already shown." and the message center does not appear. It can not be invoked again until the application is restarted.

Latest .xibs not compatible with XCode 4.6

I am unable to build because these .xibs are using the newer xcode 5 file format. These should be made backwards compatible at least until the majority of developers can switch over:

ATInfoViewController.xib
ATInfoViewController_iPad.xib
ATSimpleImageViewController.xib
ATMessageCenterViewController.xib
ATMessageInputViewV7.xib

Thanks,

Cliff

iOS 7 Design

Are there any plans to tweak Apptentive's design for iOS 7 SDK? Thanks!

Ratings flow throws exception with testing app store id

I'm integrating apptentive into an iPhone app that isn't live yet, and the ratings flow dialog throws an exception at line 184 of ATAppRatingFlow.m. It seems like apptentive is crashing because it's using a nil app name. We have an iTunes app store id, and everything on that end is initialized, we just haven't launched the app yet.

Here's a console dump from xcode:
2013-03-14 15:03:37.880 YAKiT[12641:c07] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSPlaceholderString initWithFormat:locale:arguments:]: nil argument'
*** First throw call stack:
(0x1d2c012 0x4033e7e 0x1d2bdeb 0x3a2ff34 0x3a2feab 0x2d6c63 0x2d8b63 0x2d6ba3 0x22639c 0x13178d 0x162bff 0x162a94 0x37b6b 0x5625ad 0x5624c3 0x564e14 0x56318e 0x56038d 0x55ff30 0x4fb19e 0x50466c 0x5045b4 0x37b6b 0x4f31cd 0x4f39a9 0x4f70cf 0x4f6f98 0x4a3180 0x4992db 0x49db68 0x49d9e8 0x4a6510 0x4a4008 0x49983b 0x3e7c16 0x3e7afc 0x3e7afc 0x3e7afc 0x3e7afc 0x3e7afc 0x3e7c94 0x49db68 0x49d9e8 0x4a6510 0x4a4008 0x49983b 0x49a2ff 0x58ec0 0x58f56 0x73ef42 0x73f3e2 0x73f426 0x6db678 0x6e761c 0x2fae33f 0x2fae552 0x2f8c3aa 0x2f7dcf8 0x4a11df9 0x4a11ad0 0x1ca1bf5 0x1ca1962 0x1cd2bb6 0x1cd1f44 0x1cd1e1b 0x4a107e3 0x4a10668 0x2f7b65c 0x68e4c 0x3155)

Testing the App Rating Flow

Hi,

we are about to integrate Apptentive for the first time and while the Messaging works right out of the box, we have a little problem with the rating flow - we cannot test this.

It would be really helpful to have a function in the SDK to show the rating box without meeting the conditions (in debug mode).

Also it would be really nice if we could dump the reasons why it was not shown (days since installation, significant events registered and so on) to the log.

Best regards,
Michael

Landscape support?

The message screen doesn't seem to support the landscape orientation on the iPad.
IMG_0073

Including this in you iOS app results in a validation warning when submitting your binary

The warning during validation:
WARNING ITMS-9000: "Legacy Language Designator - The directories located at (Payload/APP_NAME_HERE.app/ApptentiveResources.bundle/English.lproj) use a legacy language designator. Use of the full language name has been deprecated and is not guaranteed to work in future versions of the OS. Refer to the Language and Locale Designations guide"

Unable to simultaneously satisfy constraints

Using the latest Apptentive framework, when trying to show an upgrade message and only on iPhone 5S/64-bit, I get:

Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSLayoutConstraint:0x10b76f500 V:[UIView:0x10b73aee0]-(>=30)-|   (Names: '|':UIView:0x10b777c30 )>",
    "<NSLayoutConstraint:0x10b76bcb0 V:[UIView:0x10b73aee0]-(7)-[UIView:0x10b77a6e0]>",
    "<NSLayoutConstraint:0x10b76bda0 V:[UIView:0x10b77a6e0]-(0)-|   (Names: '|':UIView:0x10b777c30 )>",
    "<NSLayoutConstraint:0x10b77bbd0 V:[UIView:0x10b77a6e0(0)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x10b77bbd0 V:[UIView:0x10b77a6e0(0)]>

Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.

Additionally, I'm not using auto-layouts in my project and I've disabled the "poweredByBackground", so it's pointing at the following code (in file ATInteractionUpgradeMessageViewController.m on line 81 and onwards):

} else {
        NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:self.poweredByBackground attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:0];
        [self.poweredByBackground addConstraint:constraint];
        self.poweredByBackground.hidden = YES;
    }

Simply commenting out the following line fixes the problem for me:

[self.poweredByBackground addConstraint:constraint];

Mismatch between Localizable.strings and code

In Localizable.strings Lack of email dialog message. is We can't respond without one.\n\n\n, but in code it's NSLocalizedString(@"We can't respond without one.", @"Lack of email dialog message.");.

Xcode 4.6

JSONKit warnings in Xcode4.6


Apptentive/ApptentiveConnect/ext/PrefixedJSONKit/PJSONKit.m:680:12: warning: direct access to objective-c's isa is deprecated in favor of object_setClass() and object_getClass() [-Wdeprecated-objc-isa-usage]
Apptentive/ApptentiveConnect/ext/PrefixedJSONKit/PJSONKit.m:931:17: warning: direct access to objective-c's isa is deprecated in favor of object_setClass() and object_getClass() [-Wdeprecated-objc-isa-usage]

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.