Giter VIP home page Giter VIP logo

taplytics-ios-sdk's Introduction

Taplytics iOS SDK

Taplytics is a native mobile A/B testing, feature management and push notification platform that helps you optimize your iOS, tvOS, and macOS Catalyst apps! Supports iOS, iPad OS and tvOS versions 11 and up, macOS 10.15 and up using Catalyst. The SDK is avaliable using a XCFramework with Swift Package Manager, Carthage, or CocoaPods.

Getting Started

How do I, as a developer, start using Taplytics?

  1. Sign up for an account at Taplytics.com.
  2. Install the SDK
  3. Create Experiments or send Push Notifications to your users!

Resources

Questions or Need Help

The Taplytics team is available 24/7 to answer any questions you have. Just email [email protected] or visit our docs page for more detailed installation and usage information.

taplytics-ios-sdk's People

Contributors

aglazer avatar ajwootto avatar arpit-patel avatar cdruxerman avatar cnguyen9 avatar dalexsoto avatar emir-hasanbegovic avatar falconser avatar gholker avatar itisalvinn avatar jeffseto avatar jonathannorris avatar jsalaber avatar mike0yan avatar nemo avatar nikolasleblanc avatar ryansehrlich avatar vicv 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

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

taplytics-ios-sdk's Issues

Using Taplytics SDK issues a warning in App Store Connect

Our app uses Taplytics SDK and since yesterday we've started to receive warnings when we upload apps to the App Store:
ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.

It seems like your SDK still uses UIWebView which is deprecated. From analyzing our binary it seems like you may be a third party networking library that uses UIWebView.
Your SDK should use WKWebView instead.

Crash on startup

When i try to run my app with Taplytics, i get this error right after the framework writes on the console that has connected.

2014-02-05 12:13:08.703 SaferTaxi[679:70b] Taplytics: Connected!
2014-02-05 12:13:08.709 SaferTaxi[679:70b] -[**NSCFString addURLParamsFromDic:]: unrecognized selector sent to instance 0xd0403a0
2014-02-05 12:13:08.712 SaferTaxi[679:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString addURLParamsFromDic:]: unrecognized selector sent to instance 0xd0403a0'
* First throw call stack:
(
0 CoreFoundation 0x038515e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x035d48b6 objc_exception_throw + 44
2 CoreFoundation 0x038ee903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x0384190b __forwarding
+ 1019
4 CoreFoundation 0x038414ee _CF_forwarding_prep_0 + 14
5 SaferTaxi 0x000f0e58 -[TLManager getPropertiesFromServer:returnBlock:] + 324
6 SaferTaxi 0x000f06a1 -[TLManager performLoadPropertiesFromServer:returnBlock:] + 275
7 SaferTaxi 0x000efdba -[TLManager startTaplyticsAPIKey:server:] + 464
8 SaferTaxi 0x000ef8fb +[TLManager startTaplyticsAPIKey:options:] + 258
9 SaferTaxi 0x0011a99d +[Taplytics startTaplyticsAPIKey:] + 51
10 SaferTaxi 0x000028bb -[AppDelegate application:didFinishLaunchingWithOptions:] + 123
11 UIKit 0x0212f355 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 309
12 UIKit 0x0212fb95 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1536
13 UIKit 0x021343a8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824
14 UIKit 0x0214887c -[UIApplication handleEvent:withNewEvent:] + 3447
15 UIKit 0x02148de9 -[UIApplication sendEvent:] + 85
16 UIKit 0x02136025 _UIApplicationHandleEvent + 736
17 GraphicsServices 0x044082f6 _PurpleEventCallback + 776
18 GraphicsServices 0x04407e01 PurpleEventCallback + 46
19 CoreFoundation 0x037ccd65 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 53
20 CoreFoundation 0x037cca9b __CFRunLoopDoSource1 + 523
21 CoreFoundation 0x037f777c __CFRunLoopRun + 2156
22 CoreFoundation 0x037f6ac3 CFRunLoopRunSpecific + 467
23 CoreFoundation 0x037f68db CFRunLoopRunInMode + 123
24 UIKit 0x02133add -[UIApplication _run] + 840
25 UIKit 0x02135d3b UIApplicationMain + 1225
26 SaferTaxi 0x0000656d main + 141
27 libdyld.dylib 0x03e9270d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

Crash in pod (2.10.30)

Hi
I added the pod 'Taplytics' and then run pod install. then without any changes in source code i ran the project. and i get the following exception and it stops in "main.m"

Assertion failure in void PushNextClassForSettingIMP(id, SEL)(), /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3512.60.12/UIAppearance.m:760

Taplytics startup triggering Exception Breakpoint in Xcode

Xcode 10.1 (10B61)
MacOS Mojave 10.14.2
Taplytics version: 2.37.0
iOS Simulator version: iPhone 7 (11.4)
When executing the start method with the appropriate API Key

+ (void)startTaplyticsAPIKey:(nonnull NSString*)apiKey;

in the following method of the AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

an exception breakpoint is being triggered right at the window makeKeyAndVisible line.

The following line is logged to the Console as well:

2019-01-15 17:12:39.885121-0500 App[45694:590479] libMobileGestalt MobileGestalt.c:4130: Failed to get Computer Name, returning device name

Removing the exception breakpoint of course allows the launch to proceed.

Any ideas on how we can get this issue resolved? We typically do development with exception breakpoints enabled so turning OFF breakpoints is not an option.

TLView BAD_ACCESS exception when setting frame on background thread

We're seeing exceptions in production that seem to be caused by the Taplytics SDK. We have active experiments, however we only use variations for feature flipping (we're not A/B testing view variants via Taplytics).

Stack trace here (exception caught at line 7):

EXC_BAD_ACCESS KERN_INVALID_ADDRESS

Thread : Crashed: WebThread
0 UIKit 0x25d6b4f2 -[UIViewAdditiveAnimationAction runActionForKey:object:arguments:] + 569
1 UIKit 0x25d6b6ad 67-[UIViewAdditiveAnimationAction runActionForKey:object:arguments:]block_invoke + 408
2 QuartzCore 0x254e4959 CA::Layer::end_change(CA::Transaction
, unsigned int, objc_object
) + 96
3 QuartzCore 0x254e54c7 CA::Layer::set_bounds(CA::Rect const&, bool) + 526
4 QuartzCore 0x254e51e3 -[CALayer setBounds:] + 110
5 QuartzCore 0x254e6237 -[CALayer setFrame:] + 542
6 UIKit 0x25acc899 -[UIView(Geometry) setFrame:] + 264
7 Prevent 0x002ea57b -UIView(TLView) tlsw_setFrame:
8 UIKit 0x25adee11 -[UIImageView setViewGeometry:forMetric:] + 168
9 UIKit 0x25aded63 -[UIImageView setFrame:] + 38
10 UIKit 0x25cf0883 -[UISlider layoutSubviewsForBoundsChange:] + 1082
11 UIKit 0x25cf2af5 -[UISlider layoutSubviews] + 148
12 MediaPlayer 0x23d51c6b -[MPVolumeSlider layoutSubviews] + 42
13 UIKit 0x25acfc1b -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 546
14 QuartzCore 0x254ee445 -[CALayer layoutSublayers] + 128
15 QuartzCore 0x254e9c95 CA::Layer::layout_if_needed(CA::Transaction
) + 360
16 UIKit 0x25ae2853 -[UIView(Hierarchy) layoutBelowIfNeeded] + 138
17 UIKit 0x25ae7cc3 -[UISlider setValue:animated:] + 178
18 MediaPlayer 0x23d52377 -[MPVolumeSlider volumeController:volumeValueDidChange:] + 78
19 MediaPlayer 0x23db6015 -[MPVolumeController updateVolumeValue] + 252
20 MediaPlayer 0x23d51d8b -[MPVolumeSlider didMoveToSuperview] + 126
21 UIKit 0x25aceaa5 -[UIView(Hierarchy) postMovedFromSuperview:] + 428
22 UIKit 0x25ad9375 -[UIView(Internal) addSubview:positioned:relativeTo:] + 1500
23 UIKit 0x25ad8d8f -[UIView(Hierarchy) addSubview:] + 30
24 Prevent 0x002e9e63 -UIView(TLView) tlsw_addSubview:
25 MediaPlayer 0x23d54b79 -[MPVolumeView createSubviews] + 236
26 MediaPlayer 0x23d537c5 -[MPVolumeView initWithStyle:] + 212
27 MediaPlayer 0x23d53859 -[MPVolumeView initWithFrame:style:] + 80
28 MediaPlayer 0x23d53803 -[MPVolumeView initWithFrame:] + 38
29 UIKit 0x25aefd25 -[UIView init] + 44
30 WebCore 0x2e555733 -[WebMediaSessionHelper allocateVolumeView] + 262
31 WebCore 0x2e5559e7 -[WebMediaSessionHelper initWithCallback:] + 394
32 WebCore 0x2e554b17 WebCore::MediaSessionManageriOS::MediaSessionManageriOS() + 170
33 WebCore 0x2e554a05 WebCore::MediaSessionManager::sharedManager() + 124
34 WebCore 0x2e553c89 WebCore::MediaSession::MediaSession(WebCore::MediaSessionClient&) + 32
35 WebCore 0x2e1e65f1 WebCore::HTMLMediaSession::create(WebCore::MediaSessionClient&) + 20
36 WebCore 0x2e1d4fcb WebCore::HTMLMediaElement::HTMLMediaElement(WebCore::QualifiedName const&, WebCore::Document&, bool) + 1042
37 WebCore 0x2e1fddbb WebCore::HTMLVideoElement::create(WebCore::QualifiedName const&, WebCore::Document&, bool) + 38
38 WebCore 0x2e1c8191 WebCore::videoConstructor(WebCore::QualifiedName const&, WebCore::Document&, WebCore::HTMLFormElement
, bool) + 56
39 WebCore 0x2e1c78e7 WebCore::HTMLElementFactory::createElement(WebCore::QualifiedName const&, WebCore::Document&, WebCore::HTMLFormElement
, bool) + 230
40 WebCore 0x2ddd5bd1 WebCore::HTMLDocument::createElement(WTF::AtomicString const&, int&) + 88
41 WebCore 0x2ddd5b13 WebCore::jsDocumentPrototypeFunctionCreateElement(JSC::ExecState
) + 242
42 JavaScriptCore 0x23925c43 llint_entry + 21314
43 JavaScriptCore 0x23925837 llint_entry + 20278
44 JavaScriptCore 0x23925837 llint_entry + 20278
45 JavaScriptCore 0x23925837 llint_entry + 20278
46 JavaScriptCore 0x239206ef callToJavaScript + 334
47 JavaScriptCore 0x238b0ca5 JSC::JITCode::execute(JSC::VM
, JSC::ProtoCallFrame
) + 36
48 JavaScriptCore 0x236ea209 JSC::Interpreter::execute(JSC::ProgramExecutable
, JSC::ExecState
, JSC::JSObject
) + 5704
49 JavaScriptCore 0x236e8a73 JSC::evaluate(JSC::ExecState_, JSC::SourceCode const&, JSC::JSValue, JSC::JSValue_) + 354
50 WebCore 0x2e6865a9 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&) + 196
51 WebCore 0x2ddf0793 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&) + 26
52 WebCore 0x2ddf0737 WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&) + 234
53 WebCore 0x2de769dd WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent(WebCore::PendingScript&) + 156
54 WebCore 0x2de71f85 WebCore::HTMLScriptRunner::executeParsingBlockingScripts() + 244
55 WebCore 0x2de6f6b1 WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() + 52
56 WebCore 0x2de1802b WebCore::HTMLDocumentParser::canTakeNextToken(WebCore::HTMLDocumentParser::SynchronousMode, WebCore::PumpSession&) + 50
57 WebCore 0x2de175bd WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 344
58 WebCore 0x2de77de1 WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution() + 76
59 WebCore 0x2de768c9 non-virtual thunk to WebCore::HTMLDocumentParser::notifyFinished(WebCore::CachedResource_) + 72
60 WebCore 0x2de739c9 WebCore::CachedResource::checkNotify() + 56
61 WebCore 0x2de737dd WebCore::SubresourceLoader::didFinishLoading(double) + 128
62 CFNetwork 0x21eecaff ___ZN27URLConnectionClient_Classic26_delegate_didFinishLoadingEU13block_pointerFvvE_block_invoke + 78
63 CFNetwork 0x21f89fbd __ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 60
64 CFNetwork 0x21edd8d9 RunloopBlockContext::invoke_block(void const, void
) + 60
65 CoreFoundation 0x223a7411 CFArrayApplyFunction + 36
66 CFNetwork 0x21edd793 RunloopBlockContext::perform() + 182
67 CFNetwork 0x21edd659 MultiplexerSource::perform() + 216
68 CFNetwork 0x21edd4f5 MultiplexerSource::_perform(void*) + 48
69 CoreFoundation 0x2245e22f CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 14
70 CoreFoundation 0x2245d643 __CFRunLoopDoSources0 + 222
71 CoreFoundation 0x2245bcc1 __CFRunLoopRun + 768
72 CoreFoundation 0x223a79a1 CFRunLoopRunSpecific + 476
73 CoreFoundation 0x223a77b3 CFRunLoopRunInMode + 106
74 WebCore 0x2de33511 RunWebThread(void*) + 416
75 libsystem_pthread.dylib 0x30c16deb _pthread_body + 138
76 libsystem_pthread.dylib 0x30c16d5f _pthread_start + 118

Using Taplytics with macOS Catalyst

I have been trying to build my iOS/iPadOS project for my desktop but it keeps giving me this error related to the Taplytics pod. Do you know what might be causing this? Is it something on your end?

building for Mac Catalyst, but linking in object file built for iOS Simulator

Crash on startup

Hi,

On the first startup, Taplytics works well but on the second startup, it crashes.

I have set -ObjC in "other linker flags".

Is there an option to be set?

Best Regards,

Malik Alayli

Sockets causing EXC_BAD_ACCESS?

Hey, I'm looking into some crashes happening in my app. It happens erratically about 3 seconds after the app launches in the Simulator.

This is on the latest Taplytics 2.27.0 using CocoaPods.

At first glance it looks like a WebCore bug but there's a reference to TLSocketManager, which seems to be from the Taplytics SDK.

screen shot 2018-06-01 at 4 01 19 pm

This is some output from the debug console that happens after the crash:

void SendDelegateMessage(NSInvocation *): delegate (webView:identifierForInitialRequest:fromDataSource:) failed to return after waiting 10.000000 seconds. main run loop mode: kCFRunLoopDefaultMode

arm7s slice missing from 1.4.13 - 1.4.14

otool -V -f Pods/Taplytics/Taplytics.framework/Taplytics

Output from 1.4.14 (note lack of arm7s):

Fat headers
fat_magic FAT_MAGIC
nfat_arch 4
architecture i386
    cputype CPU_TYPE_I386
    cpusubtype CPU_SUBTYPE_I386_ALL
    capabilities 0x0
    offset 88
    size 2222944
    align 2^2 (4)
architecture x86_64
    cputype CPU_TYPE_X86_64
    cpusubtype CPU_SUBTYPE_X86_64_ALL
    capabilities 0x0
    offset 2223032
    size 2538960
    align 2^2 (4)
architecture armv7
    cputype CPU_TYPE_ARM
    cpusubtype CPU_SUBTYPE_ARM_V7
    capabilities 0x0
    offset 4761992
    size 2118752
    align 2^2 (4)
architecture arm64
    cputype CPU_TYPE_ARM64
    cpusubtype CPU_SUBTYPE_ARM64_ALL
    capabilities 0x0
    offset 6880744
    size 2904456
    align 2^2 (4)
Archive : Taplytics.framework/Taplytics

Output from 1.4.12:

Fat headers
fat_magic FAT_MAGIC
nfat_arch 5
architecture i386
    cputype CPU_TYPE_I386
    cpusubtype CPU_SUBTYPE_I386_ALL
    capabilities 0x0
    offset 108
    size 2181688
    align 2^2 (4)
architecture x86_64
    cputype CPU_TYPE_X86_64
    cpusubtype CPU_SUBTYPE_X86_64_ALL
    capabilities 0x0
    offset 2181796
    size 2470136
    align 2^2 (4)
architecture armv7
    cputype CPU_TYPE_ARM
    cpusubtype CPU_SUBTYPE_ARM_V7
    capabilities 0x0
    offset 4651932
    size 2090416
    align 2^2 (4)
architecture armv7s
    cputype CPU_TYPE_ARM
    cpusubtype CPU_SUBTYPE_ARM_V7S
    capabilities 0x0
    offset 6742348
    size 2110184
    align 2^2 (4)
architecture arm64
    cputype CPU_TYPE_ARM64
    cpusubtype CPU_SUBTYPE_ARM64_ALL
    capabilities 0x0
    offset 8852532
    size 2849640
    align 2^2 (4)
Archive : Pods/Taplytics/Taplytics.framework/Taplytics

Taplytics prevent me to set my textfield first responder

Hi,

I just installed Taplytics in podfile (nothing more) on my project.But since I installed it, when I try to make a textfield embedded in a UITableviewCell becoming first responder, it doesn't work. Is it an known issue and is there a solution about this? Am I crazy or is it XCode?

I installed version 2.15.3 in podfile

EDIT

I tried with version 2.15.8 and I have the same problem.

How to get the push notification for a particular user.

Hi,
I am using the taplytics in my app. We send few notifications for all users and send few notifications for particular users. I want to display the list of notifications for a particular user.I used this api to get list push notifications .
https://api.taplytics.com//v2/push?api_token=token

In this all the Push notifications are displaying. How to get the push notification for a particular user. sorting like latest notifications to old notifications

Please give suggestions.

Thank you

UITraitCollection.currentTraitCollection not updating correctly.

Steps to reproduce:

  1. download the sample project darkModeProblems.zip
  2. pod install
  3. add a valid api key in AppDelegate.m
  4. run the app.
  5. note the logs are logging every second the currentTraitCollection
  6. press the button to present a UIDocumentInteractionController
  7. toggle dark mode

expected behavior:
UITraitCollection.currentTraitCollection should show return the correct values

actual behavior:
the currentTraitCollection get stuck on value it was at when the UIDocumentInteractionController was dismissed.

suspected reason:
I suspect that the SIOSocketWebView that is added to the main window is the cause, but I am not certain how.

Crash: +[TLLaunchImage launchImageTimeout]

We're seeing some crashes in our recent build after setting TaplyticsOptionDelayLoad to 0 (Taplytics.startAPIKey(taplyticsApiKey, options: TaplyticsOptionDelayLoad: 0])). All of them are happening on devices with iOS 15. We're currently using version 3.6.3. Here is the stack trace of the crash:

Crashed: com.apple.main-thread
0  CoreFoundation                 0x1807fd22c _CFStringCheckAndGetCharacters + 4
1  CoreFoundation                 0x1807e9ce8 isEqualToString + 292
2  CoreFoundation                 0x180819a80 -[__NSDictionaryI objectForKeyedSubscript:] + 148
3  OMGRedesign                    0x101020020 +[TLLaunchImage launchImageTimeout] + 4314398752
4  OMGRedesign                    0x10108c2c0 -[TLExperimentManager getRunningExperiments:] + 4314841792
5  OMGRedesign                    0x10108c6f0 __45-[TLExperimentManager getRunningExperiments:]_block_invoke + 4314842864
6  OMGRedesign                    0x101055a30 -[TLPromise initWithTimeout:callback:] + 4314618416
7  OMGRedesign                    0x101055b10 +[TLPromise promiseWithTimeout:callback:] + 4314618640
8  OMGRedesign                    0x10108c380 -[TLExperimentManager getRunningExperiments:] + 4314841984
9  OMGRedesign                    0x101070288 __41-[TLManager startTaplyticsAPIKey:server:]_block_invoke.235 + 4314842864
10 OMGRedesign                    0x101072ee8 __57-[TLManager performLoadPropertiesFromServer:returnBlock:]_block_invoke + 4314618416
11 OMGRedesign                    0x10106ac3c +[TLTools delayBlockBy:withBlock:] + 4314618640
12 OMGRedesign                    0x10107419c __49-[TLManager getPropertiesFromServer:returnBlock:]_block_invoke_2 + 4314841984
13 libdispatch.dylib              0x1804b3c04 _dispatch_call_block_and_release + 4314842864
14 libdispatch.dylib              0x1804b5950 _dispatch_client_callout + 4314618416
15 libdispatch.dylib              0x1804c3d30 _dispatch_main_queue_callback_4CF + 4314618640
16 CoreFoundation                 0x1807fbce4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 4314841984
17 CoreFoundation                 0x1807b5ebc __CFRunLoopRun + 4314842864
18 CoreFoundation                 0x1807c93c8 CFRunLoopRunSpecific + 4314618416
19 GraphicsServices               0x19bfda38c GSEventRunModal + 4314618640
20 UIKitCore                      0x18316f0bc -[UIApplication _run] + 4314841984
21 UIKitCore                      0x182eecbe8 UIApplicationMain + 4314842864

Thank you for looking into this.

infinite loop crash

getting an infinite loop crash with the TLViewController category:

0x004baccb -[UIViewController(TLViewController) tlsw_viewDidLoad] + 615446
0x2804846d -[UIViewController loadViewIfRequired] + 600
0x280481dd -[UIViewController view] + 24
0x004baccb -[UIViewController(TLViewController) tlsw_viewDidLoad] + 615446
0x2804846d -[UIViewController loadViewIfRequired] + 600
0x280481dd -[UIViewController view] + 24
0x004baccb -[UIViewController(TLViewController) tlsw_viewDidLoad]

Taplytics stops monitored regions

Hello,

Could be possible that you are stopping all the monitored regions of an App? I was observing a strange behaviour after integrating Taplytics and I did a test. I start to monitor a couple of regions and I check if they still being monitored after 2,5,10,20 and 30 seconds.

- (void) locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region
{
    NSLog(@"didStartMonitoringForRegion");
    NSLog(@"Count: %lu", (unsigned long)[_locationManager.monitoredRegions count]);
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        NSLog(@"Count 2: %lu", (unsigned long)[_locationManager.monitoredRegions count]);
    });
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        NSLog(@"Count 5: %lu", (unsigned long)[_locationManager.monitoredRegions count]);
    });
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 10 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        NSLog(@"Count 10: %lu", (unsigned long)[_locationManager.monitoredRegions count]);
    });
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 20 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        NSLog(@"Count 20: %lu", (unsigned long)[_locationManager.monitoredRegions count]);
    });
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 30 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        NSLog(@"Count 30: %lu", (unsigned long)[_locationManager.monitoredRegions count]);
    });
}

With Taplytics integrated, I get this logs:

2016-09-16 11:59:58.263 SOMEAPP[2488:82996] didStartMonitoringForRegion
2016-09-16 11:59:58.265 SOMEAPP[2488:82996] Count: 2
2016-09-16 12:00:00.342 SOMEAPP[2488:82996] Count 2: 0
2016-09-16 12:00:03.768 SOMEAPP[2488:82996] Count 5: 0
2016-09-16 12:00:08.428 SOMEAPP[2488:82996] Count 10: 0
2016-09-16 12:00:18.549 SOMEAPP[2488:82996] Count 20: 0
2016-09-16 12:00:28.576 SOMEAPP[2488:82996] Count 30: 0

Without Taplytics I get this logs:

2016-09-16 12:06:21.968 SOMEAPP[2557:85124] didStartMonitoringForRegion
2016-09-16 12:06:21.970 SOMEAPP[2557:85124] Count: 2
2016-09-16 12:06:24.128 SOMEAPP[2557:85124] Count 2: 2
2016-09-16 12:06:27.459 SOMEAPP[2557:85124] Count 5: 2
2016-09-16 12:06:32.989 SOMEAPP[2557:85124] Count 10: 2
2016-09-16 12:06:42.437 SOMEAPP[2557:85124] Count 20: 2
2016-09-16 12:06:51.999 SOMEAPP[2557:85124] Count 30: 2

Thanks

Crash at startup in airplane mode

When no connection is available, I'm getting a crash.

(lldb) bt
* thread #1: tid = 0x5bdb4, 0x0000000193f33c10 libobjc.A.dylib`_objc_trap(), queue = 'com.apple.main-thread', stop reason = EXC_BREAKPOINT (code=1, subcode=0x193f33c10)
    frame #0: 0x0000000193f33c10 libobjc.A.dylib`_objc_trap()
    frame #1: 0x0000000193f33c80 libobjc.A.dylib`_objc_fatal + 84
    frame #2: 0x0000000193f478c0 libobjc.A.dylib`weak_register_no_lock + 360
    frame #3: 0x0000000193f4c2d0 libobjc.A.dylib`objc_storeWeak + 216
    frame #4: 0x00000001003cca38 HealthJoy`-[TLWeakContainer initWithObject:] + 96
    frame #5: 0x00000001003f8820 HealthJoy`-[UIView(TLView) setTlViewController:] + 104
  * frame #6: 0x00000001003f94d0 HealthJoy`-[UIViewController(TLViewController) tlsw_viewDidLoad] + 260
    frame #7: 0x00000001000574b4 HealthJoy`-[HLJAuthenticationViewController viewDidLoad](self=0x000000014fd85790, _cmd=0x00000001887e4c8b) + 60 at HLJAuthenticationViewController.mm:73
    frame #8: 0x0000000187fe5184 UIKit`-[UIViewController loadViewIfRequired] + 692
    frame #9: 0x0000000187fe4e94 UIKit`-[UIViewController view] + 32
    frame #10: 0x0000000100057300 HealthJoy`-[HLJAuthenticationViewController dealloc](self=0x000000014fd85790, _cmd=0x00000001887b6b8d) + 76 at HLJAuthenticationViewController.mm:64
    frame #11: 0x00000001885af128 UIKit`-[UIStoryboardScene dealloc] + 48
    frame #12: 0x0000000193f4d724 libobjc.A.dylib`(anonymous namespace)::AutoreleasePoolPage::pop(void*) + 564
    frame #13: 0x0000000183718e44 CoreFoundation`_CFAutoreleasePoolPop + 28
    frame #14: 0x00000001837ec054 CoreFoundation`__CFRunLoopRun + 1500
    frame #15: 0x00000001837190a4 CoreFoundation`CFRunLoopRunSpecific + 396
    frame #16: 0x000000018c8bb5a4 GraphicsServices`GSEventRunModal + 168
    frame #17: 0x000000018804aaa4 UIKit`UIApplicationMain + 1488
    frame #18: 0x000000010013eec4 HealthJoy`main(argc=1, argv=0x000000016fdeb9f0) + 248 at main.m:21
    frame #19: 0x00000001945a2a08 libdyld.dylib`start + 4

screen shot 2015-04-09 at 7 47 12 pm

P.S. I'm using segment.io which links your framework.
segmentio/analytics-ios#289

Crash: [TLTableViewDataSource tl_swizzle:]_block_invoke_2

We are seeing a lot of crashes in Taplytics iOS SDK v2.39.0 (CocoaPods). Here's an example stack trace:

# Crashlytics - plaintext stacktrace downloaded by - at Sun, 07 Jul 2019 07:17:24 GMT
# Platform: ios
# Date: 2019-07-07T05:57:00Z
# OS Version: 12.3.1 (16F203)
# Device: iPhone XR
# RAM Free: 13.2%
# Disk Free: 16.7%

#0. Crashed: com.twitter.crashlytics.ios.exception
0  App                          0x10545d08c CLSProcessRecordAllThreads + 376 (CLSProcess.c:376)
1  App                          0x10545d474 CLSProcessRecordAllThreads + 407 (CLSProcess.c:407)
2  App                          0x10544cdf8 CLSHandler + 26 (CLSHandler.m:26)
3  App                          0x10545b6a0 __CLSExceptionRecord_block_invoke + 199 (CLSException.mm:199)
4  libdispatch.dylib              0x1ddc35884 _dispatch_client_callout + 20
5  (Missing)                      0x271481ddc42404 (Missing)
6  (Missing)                      0x6d06010545b13c (Missing)
7  App                          0x10545af70 CLSExceptionRecordNSException + 102 (CLSException.mm:102)
8  App                          0x10545ab8c CLSTerminateHandler() + 259 (CLSException.mm:259)
9  libc++abi.dylib                0x1dd4209cc std::__terminate(void (*)()) + 20
10 (Missing)                      0x7eef01dd4205c4 (Missing)
11 (Missing)                      0x306681dd42bee0 (Missing)
12 (Missing)                      0x1d8281de1b02c0 (Missing)
13 (Missing)                      0x2e5481e03efd8c (Missing)
14 (Missing)                      0x3b68820b4f84c0 (Missing)
15 (Missing)                      0x3e408104f32818 (Missing)
16 libdyld.dylib                  0x1ddc6cfd8 start + 4

--
Fatal Exception: NSInvalidArgumentException
*** -[NSRegularExpression enumerateMatchesInString:options:range:usingBlock:]: nil argument

0  CoreFoundation                 0x1de2263a8 __exceptionPreprocess
1  libobjc.A.dylib                0x1dd42bd00 objc_exception_throw
2  CoreFoundation                 0x1de12bbe4 -[NSCache init]
3  Foundation                     0x1debd9960 -[NSRegularExpression(NSMatching) enumerateMatchesInString:options:range:usingBlock:]
4  Foundation                     0x1debd9858 -[NSRegularExpression(NSMatching) firstMatchInString:options:range:]
5  LinkKit                        0x105c8bc08 (Missing)
6  LinkKit                        0x105c6ec28 (Missing)
7  App                          0x10550fea8 __36-[TLTableViewDataSource tl_swizzle:]_block_invoke_2
8  UIKitCore                      0x20b7244f4 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:]
9  UIKitCore                      0x20b724a14 -[UITableView _createPreparedCellForGlobalRow:willDisplay:]
10 UIKitCore                      0x20b6f0318 -[UITableView _updateVisibleCellsNow:isRecursive:]
11 UIKitCore                      0x20b70dee8 -[UITableView layoutSubviews]
12 UIKitCore                      0x20b9ade00 -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
13 libobjc.A.dylib                0x1dd427454 -[NSObject performSelector:withObject:]
14 QuartzCore                     0x1e2776b08 -[CALayer layoutSublayers]
15 QuartzCore                     0x1e2776df4 CA::Layer::layout_if_needed(CA::Transaction*)
16 QuartzCore                     0x1e26de050 CA::Context::commit_transaction(CA::Transaction*)
17 QuartzCore                     0x1e270cf1c CA::Transaction::commit()
18 QuartzCore                     0x1e270dcb0 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*)
19 CoreFoundation                 0x1de1b59d8 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__
20 CoreFoundation                 0x1de1b04d0 __CFRunLoopDoObservers
21 CoreFoundation                 0x1de1b0a30 __CFRunLoopRun
22 CoreFoundation                 0x1de1b0254 CFRunLoopRunSpecific
23 GraphicsServices               0x1e03efd8c GSEventRunModal
24 UIKitCore                      0x20b4f84c0 UIApplicationMain
25 App                          0x104f32818 main + 6 (ScreenViewDeleteGoalAreYouSureEvent.swift:6)
26 libdyld.dylib                  0x1ddc6cfd8 start

#0. Crashed: com.twitter.crashlytics.ios.exception
0  App                          0x10545d08c CLSProcessRecordAllThreads + 376 (CLSProcess.c:376)
1  App                          0x10545d474 CLSProcessRecordAllThreads + 407 (CLSProcess.c:407)
2  App                          0x10544cdf8 CLSHandler + 26 (CLSHandler.m:26)
3  App                          0x10545b6a0 __CLSExceptionRecord_block_invoke + 199 (CLSException.mm:199)
4  libdispatch.dylib              0x1ddc35884 _dispatch_client_callout + 20
5  (Missing)                      0x271481ddc42404 (Missing)
6  (Missing)                      0x6d06010545b13c (Missing)
7  App                          0x10545af70 CLSExceptionRecordNSException + 102 (CLSException.mm:102)
8  App                          0x10545ab8c CLSTerminateHandler() + 259 (CLSException.mm:259)
9  libc++abi.dylib                0x1dd4209cc std::__terminate(void (*)()) + 20
10 (Missing)                      0x7eef01dd4205c4 (Missing)
11 (Missing)                      0x306681dd42bee0 (Missing)
12 (Missing)                      0x1d8281de1b02c0 (Missing)
13 (Missing)                      0x2e5481e03efd8c (Missing)
14 (Missing)                      0x3b68820b4f84c0 (Missing)
15 (Missing)                      0x3e408104f32818 (Missing)
16 libdyld.dylib                  0x1ddc6cfd8 start + 4

#1. com.apple.uikit.eventfetch-thread
0  libsystem_kernel.dylib         0x1dddadc60 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1dddad0e8 mach_msg + 76
2  (Missing)                      0xc1981de1b5e10 (Missing)
3  (Missing)                      0x407681de1b0ab4 (Missing)
4  (Missing)                      0x587e81de1b0254 (Missing)
5  (Missing)                      0x64af01deb9004c (Missing)
6  (Missing)                      0x563081deb8fed4 (Missing)
7  (Missing)                      0x5c1f020b5e40d4 (Missing)
8  (Missing)                      0x79c901deb8ec4c (Missing)
9  (Missing)                      0x7f3c01decc4e54 (Missing)
10 (Missing)                      0x3e7181dde2e908 (Missing)
11 (Missing)                      0xe8801dde2e864 (Missing)
12 (Missing)                      0x53ca01dde36dcc (Missing)

#2. com.twitter.crashlytics.ios.MachExceptionServer
0  libsystem_kernel.dylib         0x1dddadc60 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1dddad0e8 mach_msg + 76
2  (Missing)                      0x5d9b8105447dcc (Missing)
3  libsystem_pthread.dylib        0x1dde2e908 _pthread_body + 132
4  (Missing)                      0x3dd101dde2e864 (Missing)
5  (Missing)                      0x17dc81dde36dcc (Missing)

#3. com.apple.NSURLConnectionLoader
0  libsystem_kernel.dylib         0x1dddadc60 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1dddad0e8 mach_msg + 76
2  (Missing)                      0x437601de1b5e10 (Missing)
3  (Missing)                      0x763981de1b0ab4 (Missing)
4  (Missing)                      0x204901de1b0254 (Missing)
5  (Missing)                      0x456381de7d1c88 (Missing)
6  (Missing)                      0x60aa81deb8ec4c (Missing)
7  (Missing)                      0x79b301decc4e54 (Missing)
8  (Missing)                      0x408901dde2e908 (Missing)
9  (Missing)                      0x567981dde2e864 (Missing)
10 (Missing)                      0x187f01dde36dcc (Missing)

#4. JavaScriptCore bmalloc scavenger
0  libsystem_kernel.dylib         0x1dddb8ed4 __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x1dde324d0 _pthread_cond_wait + 632
2  (Missing)                      0x2f0281dd3c0990 (Missing)
3  (Missing)                      0x39dd01e54d950c (Missing)
4  (Missing)                      0x376701e54dd560 (Missing)
5  (Missing)                      0x796281e54dccfc (Missing)
6  (Missing)                      0x2d4901e54de724 (Missing)
7  (Missing)                      0x3f9381dde2e908 (Missing)
8  (Missing)                      0x77e801dde2e864 (Missing)
9  (Missing)                      0x6e001dde36dcc (Missing)

#5. WebThread
0  libsystem_kernel.dylib         0x1dddadc60 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1dddad0e8 mach_msg + 76
2  (Missing)                      0x536e81de1b5e10 (Missing)
3  (Missing)                      0x60d701de1b0ab4 (Missing)
4  (Missing)                      0x1d7b81de1b0254 (Missing)
5  (Missing)                      0x2e5281e705a5ec (Missing)
6  (Missing)                      0x3a5301dde2e908 (Missing)
7  (Missing)                      0x329e01dde2e864 (Missing)
8  (Missing)                      0x40d01dde36dcc (Missing)

#6. AVAudioSession Notify Thread
0  libsystem_kernel.dylib         0x1dddadc60 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1dddad0e8 mach_msg + 76
2  (Missing)                      0x34b081de1b5e10 (Missing)
3  (Missing)                      0x4e1e81de1b0ab4 (Missing)
4  (Missing)                      0x24e881de1b0254 (Missing)
5  (Missing)                      0x8da01e4173294 (Missing)
6  (Missing)                      0x7b0401e419dedc (Missing)
7  (Missing)                      0xbac01dde2e908 (Missing)
8  (Missing)                      0x47fe81dde2e864 (Missing)
9  (Missing)                      0x49781dde36dcc (Missing)

#7. com.apple.CoreMotion.MotionThread
0  libsystem_kernel.dylib         0x1dddadc60 mach_msg_trap + 8
1  libsystem_kernel.dylib         0x1dddad0e8 mach_msg + 76
2  (Missing)                      0x619901de1b5e10 (Missing)
3  (Missing)                      0x260381de1b0ab4 (Missing)
4  (Missing)                      0x33b481de1b0254 (Missing)
5  (Missing)                      0x33d881de1b0f88 (Missing)
6  (Missing)                      0x7ced01e3bcf9f4 (Missing)
7  (Missing)                      0x566601dde2e908 (Missing)
8  (Missing)                      0x92281dde2e864 (Missing)
9  (Missing)                      0x52cd01dde36dcc (Missing)

#8. Thread
0  libsystem_pthread.dylib        0x1dde36dc0 start_wqthread + 254

#9. Thread
0  libsystem_kernel.dylib         0x1dddb9b64 __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x1dde30abc _pthread_wqthread + 344
2  (Missing)                      0x4def81dde36dc4 (Missing)

#10. com.mixpanel.ed11580184f7da26aa8f6e67332081be
0  libsystem_kernel.dylib         0x1dddadc9c semaphore_wait_trap + 8
1  libdispatch.dylib              0x1ddc35f6c _dispatch_sema4_wait + 28
2  (Missing)                      0x695e81ddc36a24 (Missing)
3  (Missing)                      0x6a37820ca3dc18 (Missing)
4  (Missing)                      0x2e450105d6aa38 (Missing)
5  Mixpanel                       0x105d91194 closure #1 in closure #1 in MixpanelInstance.flush(completion:) + 1089 (MixpanelInstance.swift:1089)
6  Mixpanel                       0x105d84ec4 thunk for @escaping @callee_guaranteed () -> () (<compiler-generated>)
7  libdispatch.dylib              0x1ddc34304 _dispatch_call_block_and_release + 32
8  (Missing)                      0x240b81ddc35884 (Missing)
9  (Missing)                      0x169301ddc3cdd4 (Missing)
10 (Missing)                      0x57e301ddc3d918 (Missing)
11 (Missing)                      0x700381ddc45cc0 (Missing)
12 (Missing)                      0x45e481dde30a98 (Missing)
13 (Missing)                      0x134701dde36dc4 (Missing)

#11. Thread
0  libsystem_kernel.dylib         0x1dddb9b64 __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x1dde30abc _pthread_wqthread + 344
2  (Missing)                      0x4ad681dde36dc4 (Missing)

#12. Thread
0  libsystem_kernel.dylib         0x1dddb9b64 __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x1dde30abc _pthread_wqthread + 344
2  (Missing)                      0x2bbf81dde36dc4 (Missing)

Thanks for taking a look.

Selecting tableviewcell for edition, requieres goal but only buttons are available. Not tap on cells.

After selecting a tableviewcell for edition (for A/B testing the text label), it requieres later for a goal.
Goals available are either "button click" or "time in view".
In our case, this tableviewcells are somehow treated as buttons, so our goal is to track if changing the labeling of a cell will increase or decrease user's reactions of getting into the section.

I'm attaching a screenshot to better understand our case.
Is there any alternative?

Thanks!
PD: Congrats on the SDK and plaftorm. Everything is really automagical!

image

TaplyticsVar doesn't deallocate when the parent view deallocates

Sometimes my view is destroyed before a block is returned for TaplyticsVar. When that happens, the app crashes, since I'm trying to set the returned taplytics variable for an attribute on my view.

How do I make the TaplyticsVar deallocate when its parent view deallocates?

can not set variable in swift

let navigationBarItemHorizontalSpace: TaplyticsVar = TaplyticsVar(name: "navigationBarItemHorizontalSpace", defaultValue:0 {
(updatedValue: NSObject?) in
guard let value: NSNumber = updatedValue else {return}

        fixedSpace.width = value.doubleValue
    })

This is the generated code from your dashboard
this gives compile error in swift cannot call value of non-function type nsnumber

Crash on iOS7

Maybe it's calling the wrong selector on ios7....

Last Exception Backtrace:
0 CoreFoundation 0x30806f7e exceptionPreprocess + 126
1 libobjc.A.dylib 0x3b4b4cca objc_exception_throw + 34
2 CoreFoundation 0x3080a912 -[NSObject(NSObject) doesNotRecognizeSelector:] + 198
3 CoreFoundation 0x308091fe __forwarding
+ 702
4 CoreFoundation 0x30758764 _CF_forwarding_prep_0 + 20
5 Roll 0x007260f8 -[TLPushManager checkHasPushToken] + 336
6 Roll 0x0071148a __41-[TLManager startTaplyticsAPIKey:server:]_block_invoke227 + 270
7 libdispatch.dylib 0x3b99c82e _dispatch_call_block_and_release + 6
8 libdispatch.dylib 0x3b99c81a _dispatch_client_callout + 18
9 libdispatch.dylib 0x3b9a349a _dispatch_main_queue_callback_4CF$VARIANT$mp + 274
10 CoreFoundation 0x307d189c CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 4
11 CoreFoundation 0x307d0170 __CFRunLoopRun + 1296
12 CoreFoundation 0x3073aeba CFRunLoopRunSpecific + 518
13 CoreFoundation 0x3073ac9e CFRunLoopRunInMode + 102
14 GraphicsServices 0x3566e65e GSEventRunModal + 134
15 UIKit 0x33087148 UIApplicationMain + 1132
16 Roll 0x003d759c main (main.swift:10)
17 libdyld.dylib 0x3b9c1ab2 tlv_initializer + 2

SocketRocket Prefix

Hey guys,
Looking to use your product; however, it seems we are both using SocketRocket which the compiler does not like of course. I could prefix mine to fix the issue but since you are distributing the SDK it should be prefixed on your end to prevent unhappy developers.

We hope to try out the product soon.

-Ryan

Crash on Startup in iOS 7

Got an infinite loop crash on startup. Using .72

I've attached an image. For now, I'm disabling Taplytics in iOS 7.
screen shot 2015-04-18 at 9 48 47 pm

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.