Support for MacOS X Desktop application #68

Closed
wants to merge 154 commits into
from

Conversation

Projects
None yet
@lcerveau

As I need MixPanel capabilities in a Desktop application, I did modify the iOS code to be able to compile and execute under MacOSX. The first test are positive but review is certainly needed to explore all MixPanel features. Following points have to be noted

  • distinctID is the serial number of the desktop machine and is taken using IOKit method
  • depending if the application is sandboxed or not the archive location may differ
  • All UIApplication related notifications have been "transferred" to their NSApplication couterparts
  • Currently the code considers background handling, but it may be more suited to not stop the flush while in the background. This part may need more work
    This is a first version of this support. As code changes start to be "big" , I am asking for a pull request and ad a review process before going further, in order to get feedback as soon as possible in the process.
    thanks

JLinden and others added some commits Mar 24, 2011

Merge remote branch 'hbloon/master'
Conflicts:
	MPLib/MixpanelAPI.h
	MPLib/MixpanelAPI.m
Stop using the deprecated uniqueIdentifier to identify users
Changed the user identifier to be a combination of the devices mac addresses and the bundle id.
fix for issue #6
Removed the last 4 array components from the sha1 call.
remove funnel based methods, cleanup whitespace
Removed funnel tracking methods and all related objects, enums. Cleaned up whitespace inconsistencies.
Updated Docs.
Removed all references of event types.
add name_tag support
Added a nameTag property to the MixpanelAPI object
namespace base64 category
Add a namespace to the base65 category to avoid clashing with client code.
Namespace TouchJSON
Namespaced TouchJSON to avoid conflicts with client code. Removed unused TouchJSON files to avoid bloat
Resolve some foregrounding issues.
If you enter and exit the foreground quickly, it was possible for the mixpanel background tasks to clobber eachother. This has been resolved.
Add support for multiple MixpanelAPI instances.
Removed the singleton constrains from the MixpanelAPI class. Now the library supports a singleton instance and multiple non singleton instances.
Added new features
1. Users can set the API URL now.
2. Added a delegate to the MixpanelAPI Object. Now
users can be notified and block the API from 
sending events to the server. 
3. Added a flag to automatically send the device 
model.
4. Changed the default URL to use https.
Erik Chen
Fix two bugs.
1. The expiration handler for beginBackgroundTask was cancelling the connection, but not setting self.connection = nil, which would prevent all future connections from going out.
2. Remove an extraneous attempt to start a NSURLConnection. [NSURLConnection connectionWithRequest:delegate:] creates a connection that is started immediately, and the documentation is unclear as to whether start is an idempotent method.
guard against nil name tag
Remove the name tag if a user passes in nil.

neilrahilly and others added some commits Dec 8, 2012

Ashkan Farhadtouski
Prevent a potential crash.
- It appears that allocating and autoreleasing a CTTelephonyNetworkInfo from a class method causes a dereferencing exception, which causes a crash. This only happens on devices with an active and valid data service (only tested on iPhones but it might also affect iPads with cell data network access) by turning off Airplane mode and turning it back on and switching quickly to the app.
Added methods to remove super properties that have been previously re…
…gistered, for use as an alternative to clearing all of the super properties just to change a subset of them.
Ensure that a background task is started whenever -flush is called wh…
…ile the app is in the background. This ensures that the app can flush events within its own background tasks while maintaining the behavior of -flushOnBackground automatic flushes.
Merge pull request #57 from Newstex/pull-requests/delayed-background-…
…upload-fix

Regression: -flush will not complete upload if called while app is in the background
Merge pull request #54 from RebelVox/master
Rare Crash in the `deviceInfoProperties` Method
Merge pull request #56 from Newstex/pull-requests/unregister-super-pr…
…operties

Added ability to remove previously registered super properties
Merge pull request #53 from markonikolovski/instancetype
Changed `id` return type to `instancetype`
Support MacOS X Desktop
Compilation step
@dautermann

This comment has been minimized.

Show comment
Hide comment
@dautermann

dautermann Aug 20, 2013

This may be a tough integration at this point, as it looks like the current version 2.0.1 is significantly different from the branched version 2.0.0 that you did your work on.

This may be a tough integration at this point, as it looks like the current version 2.0.1 is significantly different from the branched version 2.0.0 that you did your work on.

@samgreen

This comment has been minimized.

Show comment
Hide comment
@samgreen

samgreen Jul 17, 2015

Contributor

See #12

Contributor

samgreen commented Jul 17, 2015

See #12

@samgreen samgreen closed this Jul 17, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment