Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-14331] iOS: Restore Namespacing of Base64 methods

GitHub Issuen/a
TypeBug
PriorityHigh
StatusClosed
ResolutionFixed
Resolution Date2013-08-24T02:27:08.000+0000
Affected Version/sn/a
Fix Version/s2013 Sprint 17, 2013 Sprint 17 Core, Release 3.1.3, Release 3.2.0
ComponentsiOS
Labelsn/a
ReporterIngo Muschenetz
AssigneeBlain Hamon
Created2013-06-21T16:05:31.000+0000
Updated2013-12-18T18:20:12.000+0000

Description

The Base64 methods were namespaces via ThirdpartyNS.h. The #defines for the 2 methods in question were commented out in 3.0.0.GA. The comment in thirdparty.h indicates that this was for LibTiVerify. The build error in the related ticket is because the Brightcove module defines these same methods. In order to resolve this issue, one of two things must occur: * Titanium needs to restore the namespacing of these two methods (and back port as necessary). This will require a change to libtiverify to either use the namespaced method names or have its own local, namespaced version of these two methods (which is what we do in several of our modules). * Brightcove needs to provide an updated version of their SDK with these two methods renamed. The suggestion is option 1. It is unlikely Brightcove is the only SDK that has these method names and the namespacing in Titanium was introduced a while back to alleviate these kinds of issues, so we really need to restore the namespacing of these methods.

Comments

  1. Blain Hamon 2013-07-30

    I've got it. Instead of just re-enabling, I'm going to manually and consciously rename this to TI_Base64DecodeData due to TiVerify not using ThirdpartyNS.h and so we're aware of it.
  2. Ingo Muschenetz 2013-07-30

    [~blainhamon] Any way we can fix this so that affected users don't have to release a new version of their module?
  3. Blain Hamon 2013-07-30

    Change made, will test and make pull request tomorrow.
  4. Blain Hamon 2013-07-30

    @ingo There's some possible voodoo, but I highly suggest against it, and it's better just for us to rename our base64 methods.
  5. Sabil Rahim 2013-08-02

    master PR : https://github.com/appcelerator/titanium_mobile/pull/4512
  6. Vishal Duggal 2013-08-29

    Backport PR https://github.com/appcelerator/titanium_mobile/pull/4617
  7. Eric Merriman 2013-09-07

    Do we have any test cases or other direction?
  8. Wilson Luu 2013-12-18

    Closing ticket as fixed. Verified that by adding these two lines of code in the app.js file:
       var BrightCove = require('ti.brightcove');
       var forceLoad = [ Ti.Media.createVideoPlayer ];
       
    I was able to adhoc package the app, install the app to device, and launch the app on simulator without any issues. Tested on: Appcelerator Studio, build: 3.2.0.201312171913 SDK build: 3.2.0.v20131217190633 CLI: 3.2.0-cr3 Alloy: 1.3.0-cr2 ti.brightcove: 2.1.1 Xcode: 5.0.2 Devices: iphone 4s (6.0.1), iphone 5s (7.0.2)

JSON Source