Git Product home page Git Product logo

sdk-release's Introduction

These SDKs are deprecated

The MobileAppTracking SDK code is released under the LGPL license. For alternative licensing options, please contact TUNE, Inc.

sdk-release's People

Contributors

bklastaitis-branch avatar davidloew avatar echo-branch avatar ernesttune avatar hasjohnb avatar hasmario avatar iam-automation avatar tune-andyp 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

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  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

sdk-release's Issues

SDK iOS 4.14.1 : func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any)

Hi,

In you SDK, the function Tune.handleOpen(url, sourceApplication: sourceApplication) need a URL and a String! but with SWIFT 3.2, the sourceApplication is now optional.

Can we do that to avoid crashes ?

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    
    // When the app is opened due to a deep link, call the Tune deep link setter
    if let s = sourceApplication {
      Tune.handleOpen(url, sourceApplication: s)
    }
    else{
      Tune.handleOpen(url, sourceApplication: nil)
    }
...
}

Regards,

Why is the Tune SDK for iOS around 40mb?

I am looking at the source and i can't figure out why this is the case? We need to minimize the size of this Framework in our project. Is there any advice you can give?

SecurityException: not allowed to perform FINE_LOCATION

tune-marketing-console-sdk v4.1.0

Fatal Exception: java.lang.SecurityException: xxx from uid 10125 not allowed to perform FINE_LOCATION
       at android.os.Parcel.readException(Parcel.java:1546)
       at android.os.Parcel.readException(Parcel.java:1499)
       at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:582)
       at android.location.LocationManager.requestLocationUpdates(LocationManager.java:948)
       at android.location.LocationManager.requestLocationUpdates(LocationManager.java:496)
       at com.tune.location.TuneLocationListener$GetLocationUpdates.run(SourceFile:197)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:139)
       at android.app.ActivityThread.main(ActivityThread.java:5298)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)

iOS SDK notifyDelegateRequestEnqueuedWithRefId Crash

We have several crashes in this method. Are we "holding it wrong" ?

Thread 7 Crashed:
0   libobjc.A.dylib                      0x00000001925fc0a0 objc_retain + 16
1   Real Green                           0x000000010077a590 -[TuneTracker notifyDelegateRequestEnqueuedWithRefId:url:postData:] (TuneTracker.m:497)
2   Real Green                           0x000000010077b934 -[TuneTracker sendRequestWithEvent:] (TuneTracker.m:645)
3   Real Green                           0x000000010077a2d4 -[TuneTracker sendRequestAndCheckIadAttributionForEvent:] (TuneTracker.m:469)
4   Real Green                           0x000000010077a20c -[TuneTracker measureEvent:] (TuneTracker.m:458)
5   Real Green                           0x0000000100767f94 __21+[Tune measureEvent:]_block_invoke (Tune.m:664)
6   Foundation                           0x000000019469bfb0 __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 12
7   Foundation                           0x00000001945e0aa8 -[NSBlockOperation main] + 92
8   Foundation                           0x00000001945d10a4 -[__NSOperationInternal _start:] + 616
9   Foundation                           0x000000019469e35c __NSOQSchedule_f + 224
10  libdispatch.dylib                    0x0000000192a361bc _dispatch_client_callout + 12
11  libdispatch.dylib                    0x0000000192a443dc _dispatch_queue_serial_drain + 924
12  libdispatch.dylib                    0x0000000192a399a4 _dispatch_queue_invoke + 648
13  libdispatch.dylib                    0x0000000192a4634c _dispatch_root_queue_drain + 568
14  libdispatch.dylib                    0x0000000192a460ac _dispatch_worker_thread3 + 120
15  libsystem_pthread.dylib              0x0000000192c3f2a0 _pthread_wqthread + 1284
16  libsystem_pthread.dylib              0x0000000192c3ed8c start_wqthread + 0

IOS SDK - duplicate symbol for architecture arm64

The Xcode build process show me this error and I can't build :

duplicate symbol l071 in:
/Users/jbustamante/Desktop/Aborda/aborda/mmc_mistura_iphone/MobileAppTracker.framework/MobileAppTracker(TuneEventQueue.o)
/Users/jbustamante/Desktop/Aborda/aborda/mmc_mistura_iphone/MobileAppTracker.framework/MobileAppTracker(TuneDeferredDplinkr.o)
ld: 1 duplicate symbol for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Thank you!!!

iOS: site_id not found

Hi,

I have followed all the instructions for integrating this library, but I get this after inspecting the api call when requesting if there is any deferred deeplink available.

{"code":400,"message":"cannot determine site_id"}

Could you help me with this, please?

iOS: Some function documentation have wrong parameter names

I have Tune 4.8.0 added to my project via CocoaPod 1.0.1. My project treats warnings as errors and has the clang flag -Wdocumentation enabled. Building my app results in 5 errors in 2 files:

  • TuneDebugUtilities.h#16 * param enableshould be * param enableDebug
  • Tune.h#409 * param variableNameshould be * param name
  • Tune.h#419 * param variableNameshould be * param name
  • Tune.h#429 * param variableNameshould be * param name
  • Tune.h#439 * param variableNameshould be * param name

Adding -Wno-documentation to the build config in CocoaPods post_install hook does not fix the problem. I think this is due to the fact that Tune gets installed as a framework?

Are there any workarounds until the source is fixed?

SDK 4.3.0 : Fatal Exception: java.lang.SecurityException

Fatal Exception: java.lang.SecurityException: app from uid XXX not allowed to perform FINE_LOCATION
at com.tune.location.TuneLocationListener$GetLocationUpdates.run(TuneLocationListener.java:207)

com.tune:tune-marketing-console-sdk:4.3.0

Device is ONE E1003 5.1.1 (Lollipop)

May be a device-specific issue since we only see one instance of this crash.
Looks like Google ran into this too:

https://bugs.chromium.org/p/chromium/issues/detail?id=580733

[iOS] `setAge: null / 0` leads to a coppa-protected account.

We don't track or collect our user's age in our Product. Our product is only for adults. As a result we have no "sane" value to Set Age with.

The iOS SDK Code as written treats an age of 0 as "underage" as far as I can see from the code.

Is there a way to declare globally that age is irrelevant for our product? Otherwise I'm going to have to hack it with setAge: 1000.

Thoughts?

SDK IOS 4.14.1 : Cannot convert value of type '[UIApplicationOpenURLOptionsKey : Any]' to expected argument type '[String : Any]!'

Hi,

Your SDK seem to be outdated from Apple native function (app in SWIFT 3.2)

func application(_ application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    
   // When the app is opened due to a deep link, call the Tune deep link setter
    Tune.handleOpen(url, options: options)

return true
}

We have the issue : Cannot convert value of type '[UIApplicationOpenURLOptionsKey : Any]' to expected argument type '[String : Any]!'

Can you update it or give us the documentation for this issue.

Regards,

Errors with Xcode 8.3

Tune/Tune/Tune/module.modulemap:1:18:error: redefinition of module 'Tune'
framework module Tune { ... }

This error is preventing us from building the SDK as is

setShouldAutoCollectDeviceLocation not working

Even If I set setShouldAutoCollectDeviceLocation to false, tune still track the user position, which is unacceptable!
Minimal code to reproduce:

func applicationDidBecomeActive(application: UIApplication) {
    Tune.setShouldAutoCollectDeviceLocation(false)
    Tune.measureSession()
}

duplicate symbol l070

duplicate symbol l070 in:
... /MobileAppTracker.framework/MobileAppTracker(TuneDeferredDplinkr.o)
... /MobileAppTracker/MobileAppTracker.framework/MobileAppTracker(TuneEventQueue.o)
1 duplicate symbol for architecture arm64

This issue still appears in:
MobileAppTracker 3.11.0
Yosemite 10.10.5 (14F27)
Xcode 6.2 (6C131e)
iOS SDK 8.2
Swift iOS project
when building for arm64 (i.e. preparing archive for itunes)
On Simulator build OK.
Any idea how to fix it ?

Bitcode support

I can't compile because the framework does not support bitcode. Did I do something wrong?

TuneEvent.o)' was built without full bitcode

V3.14

apple Review Reject "non-public API"

2. 5 PERFORMANCE: SOFTWARE REQUIREMENTS
Performance - 2.5.1


Your app uses or references the following non-public APIs:
activateApp

The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.
grep -Rnis 'activateApp' *
Binary file Pods/Tune/Tune.framework/Tune matches

Please, fix it.

Add nullability qualifiers for swift integration

The current iOS headers don't specify any nullability qualifiers. This means that clang will treat everything as implicitly unwrapped, which makes this framework a ticking time bomb to use with Swift.

Objective-c is being relegated to a second class citizen, this kind of thing is an absolute must have for a lot of folks out there.

Typo in category NSObject+TuneRuntime

At the top of NSObject+TuneRuntime.m, there are a couple import statements that are incorrect. Particularly the following:

import "NSObject+ArtisanRuntime.h"

import "ArtisanSkyHookCenter.h"

Should be changed to:

import "NSObject+TuneRuntime.h"

import "TuneSkyHookCenter.h""

Cannot set custom permission for receiver?

This might not kind of issue, but I found that the receiver was not set any custom permission which expose other application to communicate with, is there any way that we can handle this issues?





Click Injection Issue

I heard that Google and tune created a new referrer API to prevent click injection.(here)
I think it is a good solution.
So, which sdk version does support this issue?

Windows Phone SDK- crash because of synchronization issue in Isolated Storage

Collection was modified; enumeration operation may not execute.

In the Windows Phone SDK, instead of using Isolated Storage setting, can't the SDK use separate files(key-value, key being unique file name) to save relevant info?

Stack Trace


0 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
1 at System.Collections.Generic.Dictionary`2.Enumerator.MoveNext()
2 at WriteArrayOfKeyValueOfstringanyTypeToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , CollectionDataContract )
3 at System.Runtime.Serialization.CollectionDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)
4 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)
5 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)
6 at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)
7 at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)
8 at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)
9 at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(XmlDictionaryWriter writer, Object graph)
10 at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(Stream stream, Object graph)
11 at System.IO.IsolatedStorage.IsolatedStorageSettings.Save()
12 at MobileAppTracking.MobileAppTracker.SaveLocalSetting(String key, Object value)
13 at MobileAppTracking.MobileAppTracker.GetUrlCallback(IAsyncResult result)
14 at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass1d.b__1b(Object state2)

Android SDK 6.1.1: App version is 0 when using custom package name

We have one app (let it be com.example.app) for both Amazon and Google stores, but to have separate analytics for them on Tune website, we pass different package names in calls to Tune.init (as described here: https://tune.docs.branch.io/sdk/creating-unique-package-names/#code-platform-android): com.example.app for Google store and com.example.appamazon for Amazon. Before SDK version 6.0.0 everything worked fine, but now all analytics from Amazon version of the app are displayed with "app_version" = 0.

After investigating your code, it seems that the problem is in this line: https://github.com/BranchMetrics/sdk-release/blob/master/sdk-android/TuneMarketingConsoleSDK/src/main/java/com/tune/TuneParameters.java#L150
SDK versions prior to 6.0.0 used real package name (Context.getPackageName) to query the system about app's version, but now custom package name is used. In our case, Google store version of the app works fine, because its custom package name is the same as the real package name (com.example.app), but on Amazon the system cannot find a package named com.example.appamazon and thus appVersion is set to 0.

Crashing in iOS 12.1.2 | TuneUtils.m line 175 +[TuneUtils checkJailBreak] |

I have Tunes integrated from a very long time, from nowhere I started seeing a new crash in
iOS version : iOS 12.1.2
I am using Tune pod version : pod 'Tune', '4.12.5'

in crashlytics it is captured, log :

TuneUtils.m line 175
+[TuneUtils checkJailBreak]

#0
Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000

Crashed: com.apple.main-thread
0 libsystem_platform.dylib 0x2359ea010 _platform_strcmp
1 (Missing) 0x105bf29e0 (Missing)
2 (Missing) 0x105b66d64 (Missing)
3 (Missing) 0x105b66c3c (Missing)
4 (Missing) 0x105b6cb58 (Missing)
5 PhonePe 0x10130e650 +[TuneUtils checkJailBreak] (TuneUtils.m:175)
6 PhonePe 0x1012e6cf4 -[TuneConfiguration updateShouldAutoDetectJailbroken:] (TuneConfiguration.m:433)
7 PhonePe 0x1012e8058 -[TuneConfiguration setShouldAutoDetectJailbroken:] (TuneConfiguration.m:626)
8 PhonePe 0x1012e5090 -[TuneConfiguration setDefaultConfiguration] (TuneConfiguration.m:132)
9 PhonePe 0x1012e4e60 -[TuneConfiguration initWithTuneManager:] (TuneConfiguration.m:62)
10 PhonePe 0x1012d2f78 +[TuneModule moduleWithTuneManager:] (TuneModule.m:25)
11 PhonePe 0x1012a05fc +[TuneManager instantiateModules] (TuneManager.m:66)

IOS Bitcode -Enabled SDk

Where i can get iOS 9 SDK With BitCode enabled , Mixpanel and Flurry already did this , please compile it , yours library is only one dependency that have not supports BITCODE .

Updating from 4.3.0 to 4.5.0 causes crashes when rotating

Updated from 4.3.0 to 4.5.0 and we see the following crash when rotating the phone. (If I simply change back to 4.3.0 with no code changes the crash doesn't happen).

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{MyActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.support.v4.app.FragmentHostCallback.getContext()' on a null object reference
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
       at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4077)
       at android.app.ActivityThread.-wrap15(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5417)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.support.v4.app.FragmentHostCallback.getContext()' on a null object reference
       at android.support.v4.app.FragmentState.instantiate(Fragment.java:100)
       at android.support.v4.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:2053)
       at android.support.v4.app.Fragment.restoreChildFragmentState(Fragment.java:1282)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1272)
       at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:2144)
       at android.support.v4.app.FragmentController.dispatchCreate(FragmentController.java:190)
       at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:351)
       at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:85)
       at com.gogobot.utilities.app.GogoActivity.onCreate(GogoActivity.java:41)
       at com.gogobot.gogodroid.GogobotMenuActivity.onCreate(GogobotMenuActivity.java:357)
       at android.app.Activity.performCreate(Activity.java:6251)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
       at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4077)
       at android.app.ActivityThread.-wrap15(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5417)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Cant' build android sdk

The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
at android_release_aar_dulkhoq89m33wxqb89a5btma5.run(https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle:43)
Incremental java compilation is an incubating feature.
The TaskInputs.source(Object) method has been deprecated and is scheduled to be removed in Gradle 4.0. Please use TaskInputs.file(Object).skipWhenEmpty() instead.

FAILURE: Build failed with an exception.

  • What went wrong:
    Task 'creates' not found in root project 'sdk-android'.

SDK 4.10.0: java.lang.IllegalStateException: Timer was canceled

Hi,

We recently upgraded to 4.10.0 from 4.4.0 and we've received multiple reports of this crash

java.lang.IllegalStateException: Timer was canceled
	at java.util.Timer.scheduleImpl(Timer.java:558)
	at java.util.Timer.schedule(Timer.java:456)
	at com.tune.location.TuneLocationListener$GetLocationUpdates.run(TuneLocationListener.java:249)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:211)
	at android.app.ActivityThread.main(ActivityThread.java:5317)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)

We haven't personally seen this issue but this happens in all OS versions starting Lollipop.

If it's of any help, here's how we initialize Tune.

Tune.init(app,tune_advertiser_id,tune_converion_key );
Tune.getInstance().setShouldAutoCollectDeviceLocation(false);

What could've possibly been the problem?

Thanks for the help.

SDK Obj-C headers lack Swift annotations

Xcode will treat the lack of annotations as implicitly unwrapped optionals, which will cause exceptions if you pass in nil, which in many cases is a valid value for properties or arguments. It also forces calls to treat new instances as optional when they don't need to be.

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.