GitHub Issue | n/a |
Type | Bug |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2012-08-15T19:46:41.000+0000 |
Affected Version/s | Release 1.7.2, Release 2.1.0 |
Fix Version/s | Sprint 2012-16 Core, Release 3.0.0 |
Components | iOS |
Labels | core, qe-port |
Reporter | Jeff English |
Assignee | Max Stepanov |
Created | 2011-08-30T15:30:55.000+0000 |
Updated | 2013-01-09T11:45:04.000+0000 |
When attempting to use a module that includes a 3rd party library, receiving Duplicate Symbol errors with several 'Async...' symbols. Specifically,
- AsyncSocket
- AsyncSpecialPacket
- AsyncWritePacket
- AsyncReadPacket
The 3rd party library also defines these same symbols and so it is unable to link.
The 3rd party library is provided as a static library that is used by the module. So we are unable to change the class names so that they do not conflict with ours. We are in contact with the provider of this particular static library to try and get a version that does not include or renames these symbols.
Renaming the aforementioned classes in Titanium source with a 'Ti' prefix will also resolve the conflicts.
Changing priority to next release since we are working with the 3rd party developer to get a version of their static library with these symbols renamed.
This issue of duplicate symbols for open source libraries that we use in Titanium is one of the most common issues that I hear from module developers. Most of the time the module developers don't have access to the library that they are trying to integrate as a module, so telling them to change their use of it is not a workable solution. We just need to 'namespace' those APIs in Titanium in order to fix this issue (e.g. by adding a 'Ti' prefix) and eliminate this as a customer engineering / module development issue.
Adding _AsyncUdpSocket_ to the list
Pulling in since this is a simple change and may affect another existing customer ticket already in this sprint (TIMOB-9452)
Ask by the customer (RDI/McDonalds) to pull in this ticket for 2.1.1 at the end of this month.
Pull merged.
Test instructions: 1. Build KS project for device 2. Open Terminal and cd to
PR pending https://github.com/appcelerator/titanium_mobile/pull/2740
Second time's the charm. Pull merged.
Closing as fixed. Tested on: Titanium Studio, build: 3.0.0.201211301903 Titanium SDK, build: 3.0.0.v20121206113203 Devices: iPhone 4 (5.1.1)