Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Re-enable CoreTelephony.framework telemetry #3295

Closed
friedbunny opened this issue Dec 15, 2015 · 7 comments
Closed

Re-enable CoreTelephony.framework telemetry #3295

friedbunny opened this issue Dec 15, 2015 · 7 comments
Labels
bug iOS Mapbox Maps SDK for iOS telemetry Integration with Mapbox Telemetry libraries

Comments

@friedbunny
Copy link
Contributor

Linking CoreTelephony.framework was broken in v3.0.0 and removed entirely in v3.0.1. Cellular carrier and network statistics are still useful, so let's bring it back.

We never pinned down exactly why it was crashing (#3112), but I suspect the situation will be improved by moving to a dynamic framework distribution (#3183) and we should reinvestigate after that happens.

Last included code.

/cc @incanus @1ec5

@friedbunny friedbunny added bug iOS Mapbox Maps SDK for iOS labels Dec 15, 2015
@friedbunny friedbunny self-assigned this Dec 15, 2015
@friedbunny friedbunny added this to the ios-v3.1.0 milestone Dec 22, 2015
@friedbunny friedbunny added the telemetry Integration with Mapbox Telemetry libraries label Jan 9, 2016
@1ec5
Copy link
Contributor

1ec5 commented Jan 19, 2016

@friedbunny, does #3183 address this issue?

@friedbunny
Copy link
Contributor Author

I'll look at how the conditional CoreTelephony code performs in our dynamic framework, but I wouldn't be opposed to requiring CT again if it still proves buggy.

@friedbunny
Copy link
Contributor Author

Going to move this to the next release (currently v3.2.0) to let the dust settle on all the telemetry changes and dynamic framework'ing.

@friedbunny friedbunny modified the milestones: ios-v3.2.0, ios-v3.1.0 Jan 20, 2016
@mikemorris
Copy link
Contributor

I've been testing re-adding conditional CoreTelephony support, but can't seem to get past the crash in #3112. It looks like the public CoreTelephony classes might be defined in header files (and as such are always present so the NSClassFromString check passes), but private, internal classes depend on symbols in CoreTelephony.framework and are therefore missing when it's not linked.
screen shot 2016-02-16 at 6 17 16 pm

@boundsj boundsj modified the milestones: ios-v3.2.0, ios-v3.3.0 Mar 3, 2016
@friedbunny friedbunny removed their assignment Mar 5, 2016
@friedbunny friedbunny removed this from the ios-v3.3.0 milestone Apr 8, 2016
@friedbunny
Copy link
Contributor Author

Went ahead and removed this from the v3.3.0 milestone. At this point, I think we should close this issue — CT has proven difficult to use optionally and it’s a feature we can live without. @boundsj?

@boundsj
Copy link
Contributor

boundsj commented Apr 8, 2016

I agree -- let's close this.

@1ec5
Copy link
Contributor

1ec5 commented Jun 21, 2016

It looks like the public CoreTelephony classes might be defined in header files (and as such are always present so the NSClassFromString check passes), but private, internal classes depend on symbols in CoreTelephony.framework and are therefore missing when it's not linked.

NSClassFromString() doesn’t care where a symbol is defined; it only matters whether a class has been loaded into the Objective-C runtime. There’s no such thing as a “false positive”. The stack trace indicates that Core Telephony is making an assumption about its environment, perhaps assuming that the framework’s initializer has already been called. (We have no idea what’s in the initializer.)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug iOS Mapbox Maps SDK for iOS telemetry Integration with Mapbox Telemetry libraries
Projects
None yet
Development

No branches or pull requests

4 participants