Skip to content

Releases: mixpanel/mixpanel-iphone

Bug Fixes and Maintenance

06 Apr 22:12
Compare
Choose a tag to compare
  • Resolved an issue with In-App Notifications truncating instead of creating a new line for long strings
  • Resolved an issue that prevented Tweaks from working correctly if integrating through Carthage
  • Fix a possible crash in mp_importantColor if your image was a non-standard size
  • Changed the behavior of flushWithCompletion: to always call archive regardless of whether or not you supplied a handler to flushWithCompletion:.
  • Resolved a number of bugs with our watchOS 2 implementation. It works with Cocoapods and Carthage now, without any additional work.

Better flexibility for networking

16 Feb 02:59
Compare
Choose a tag to compare
  • Made internal network calls more resilient and added back off
  • Increased internal event queue size to 5,000 from 500
  • Added readonly property isSurveyAvailable to help determine if you should call showSurvey
  • Fixed a possible crash in MPEventBinding
  • Fixed hard coded code signing identity in HelloMixpanel sample

Patch update for watchOS

01 Feb 23:53
Compare
Choose a tag to compare
  • Resolved some issues with building the watchOS target for Carthage
  • Fixed a crash in MPSwizzler
  • checkForSurveysWithCompletion: and checkForNotificationsWithCompletion: no longer use a cache internally, so they will always return the latest data. This means you don't need to wait for users to background your app to see updated notifications or surveys.

Support for watchOS 2, plus many bug fixes!

27 Jan 21:45
Compare
Choose a tag to compare

Features

  • Added beta support for watchOS 2 (currently only supports track:properties:, people support coming next update)
  • Added functionality to unset all device tokens on a people profile
  • Added a new exception handler
  • Added a class method [Mixpanel libVersion] to allow access of the version before initializing the shared instance
  • Performed a nullability audit to increase ease of use in Swift code bases; This means optionals will have more significance when interacting with the library

Bug Fixes

  • Fixed a bug when building with Carthage due to the presence of CFBundleExecutable in the Info.plist
  • Fixed a bug with negative $duration values when using timeEvent:
  • Fixed a bug with variants and eventBindings not being reset properly
  • Fixed a bug where events would incorrectly report their source device as an Apple watch
  • Fixed a potential crash in checkForDecideResponseWithCompletion:useCache:
  • Fix for Objective-C tweaks when Mixpanel is built as a framework

Maintenance

  • Renamed websocket categories to prevent collision with SRWebSocket

Bug fixes and the return of landscape in-app notifications

01 Dec 23:27
Compare
Choose a tag to compare

ALL ISSUES WITH ATS ARE RESOLVED AND YOU NO LONGER NEED TO WHITELIST

  • Fixed incorrect sample code in some documentation.
  • Fixed a possible error when setting a flushInterval to a different value.
  • Restored support for landscape in-app notifications on all devices.
  • Fixed a bug where background tasks were not expired correctly in some cases, resulting in iOS throwing an assertion and suspending the app.

Bug fixes for Carthage

17 Oct 00:25
Compare
Choose a tag to compare

In preparation for full Swift support, the next release (v3.0.0) will only support iOS 8+ via Carthage and CocoaPods. If you would like to use Swift and the Mixpanel SDK on iOS 7 you will be required to integrate manually, as neither Carthage nor CocoaPods support integration to iOS 7 with Swift since they depend on the dynamic library feature that was released with iOS 8.

  • Resolved all iOS 9 / Xcode 7 warnings.
  • Fixed the deployment target for Carthage builds.

We're still waiting on our CDN to update their SSL certificate to be compatible with ATS. You will need to whitelist our CDN URL if you are using in-app notifications with custom images. Here is the raw plist values you should use for this:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>mxpnl.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>

We apologize for the inconvenience and we hope to have this resolved in the near future.

Carthage Support

26 Aug 21:05
Compare
Choose a tag to compare
  • Added support for Carthage.
  • Updated MPWebSocket code to prevent a rare crash.
  • Flushing is faster for debug builds.

Bug fixes and code improvements

17 Jul 01:01
Compare
Choose a tag to compare
  • Converted code base to modern Objective-C using Xcode's automated tools.
  • Added optional completion handler for flush - flushWithCompletion:.
  • Resolved a potentional crash in MPObjectSelector.
  • Moved private code from static library out in to the public repo.

Bugfix

13 May 20:24
Compare
Choose a tag to compare

Handle case where a new version of an app may no longer contain a class that we had attached codeless event bindings to. This update means the event bindings will become inactive if the class they depend on is removed.

Mixpanel works with App Extensions (including WatchKit)

06 May 23:36
Compare
Choose a tag to compare

This version of Mixpanel can be installed in iOS app extensions, including WatchKit extensions. If you are using CocoaPods, you can do the following in your Podfile:

target "MyApp" do
    pod "Mixpanel"
end

target "MyApp WatchKit Extension" do
    pod "Mixpanel/AppExtension"
end

The AppExtension version removes all iOS functionality that is not available in app extensions, such as access to [UIApplication sharedApplication] and extended background tasks. We also remove mixpanel functionality that is not applicable to extensions, such as surveys and in-app notifications. This is accomplished by adding the MIXPANEL_APP_EXTENSION macro to your build settings. If you are not using CocoaPods, you should add that macro to the PreProcessor Macros section of your app extension target in XCode.

There is a slight behavior change for the app extension version of mixpanel, where all track: calls are immediately sent to mixpanel instead of being buffered and periodically flushed, as they are in the regular version. This is because we do not have access to the same kinds of app lifecycle events in an app extension, and are not able to spawn an extended background task to flush your events after the app extension closes.