{ "id": "63232", "key": "TIMOB-2600", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "5", "description": "All attempts at reproducing this issue failed, or not enough information was available to reproduce the issue. Reading the code produces no clues as to why this behavior would occur. If more information appears later, please reopen the issue.", "name": "Cannot Reproduce" }, "resolutiondate": "2019-11-20T21:38:36.000+0000", "created": "2011-04-15T03:24:05.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "core" ], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [ { "id": "19919", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "99137", "key": "TIMOB-10430", "fields": { "summary": "iOS: cannot add tabGroup as a property of a window or a tabGroup", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2019-11-20T21:38:36.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "{html}

When i build for simulator everything works as expected, but\r\nwhen i build for device it installs onto the phone, then when i\r\nopen the application the errors below appear and the app locks on\r\nthe splash screen. I've really tried everything and it looks like a\r\ncouple of other people have experienced similar issues:

\r\n

\r\nhttp://developer.appcelerator.com/question/85671/invalid-method-cre...
\r\n\r\nhttp://developer.appcelerator.com/question/45181/test-working-in-ip...

\r\n

The errors are:

\r\n

[WARN] attempted to load: TiUITabGroupProxy\r\n[ERROR] Script Error = invalid method\r\n(createTabGroup) passed to UIModule at app.js (line 1). [ERROR] application received error: invalid\r\nmethod (createTabGroup) passed to UIModule at app.js (line 1)\r\n[DEBUG] application booted in 275.932014\r\nms

\r\n

This issue has just started and i'm struggling to move past it,\r\ni've done the following and it's still causing the issue:

\r\n\r\n

I've attached my app.js which seems to be in order, i also\r\ncreated a new project and replaced the app.js in that project and\r\nit seemed to run ok, but i cannot find any reason why my app.js\r\nwouldn't run...

\r\n

please help, i've spent 2 whole days trying things now!!!!!

{html}", "attachment": [ { "id": "18171", "filename": "app.js", "author": { "name": "matthewlanham", "key": "matthewlanham", "displayName": "Matthew Lanham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:24:05.000+0000", "size": 1990, "mimeType": "application/x-javascript" } ], "flagged": false, "summary": "iOS: invalid method (createTabGroup) passed to UIModule at app.js", "creator": { "name": "matthewlanham", "key": "matthewlanham", "displayName": "Matthew Lanham", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "matthewlanham", "key": "matthewlanham", "displayName": "Matthew Lanham", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 1171, "state": "closed", "name": "2019 Sprint 24", "startDate": "2019-11-18T16:40:09.114Z", "endDate": "2019-12-01T16:40:00.000Z", "completeDate": "2019-12-02T23:06:24.654Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "128925", "author": { "name": "craigmarvelley", "key": "craigmarvelley", "displayName": "Craig Marvelley", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

I'm experiencing this issue too, and I can't find a workaround.\nI'm seeing it with both 1.5.1 and 1.4.2 SDKs. Since it seems to\nonly be an issue when compiling for a device, and I'm only seeing\nthis issue for tab groups (a straightforward app.js that loads a\nsingle window works, while the same code but with a tab group\ndoesn't) I found all files within the build directory that seem to\nreference a tab group. There are differences between a simulator\nbuild and a device build, but I'll leave it to you to decide if\nthat's unnatural. Just thought this might be useful!

\n

Mentions of TabGroup in my simulator build (iOS 4.2, SDK\n1.5.1)

\n

Classes/TiTab.h
\nClasses/TiTabGroup.h
\nClasses/TiUIOptionDialogProxy.m
\nClasses/TiUITabGroup.h
\nClasses/TiUITabGroup.m
\nClasses/TiUITabGroupProxy.h
\nClasses/TiUITabGroupProxy.m
\nClasses/TiUITabProxy.h
\nClasses/TiUITabProxy.m
\nClasses/TiUIWindowProxy.m
\nClasses/TiWindowProxy.h
\nClasses/TiWindowProxy.m
\nMyApp.xcodeproj/project.pbxproj
\nbuild/build.log
\nbuild/Debug-iphonesimulator/MyApp.app/MyApp
\nbuild/Debug-iphonesimulator/MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/build-state.dat
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/build-state~.dat
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/MyApp.LinkFileList
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiUIOptionDialogProxy.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiUITabController.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiUITabGroup.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiUITabGroupProxy.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiUITabProxy.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiUIWindowProxy.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiWindowProxy.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/MyApp-project-headers.hmap
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/MyApp.dep
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/MyApp.hmap
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/MyApp~.dep

\n

Mentions of TabGroup in my device build (same targets)

\n

Classes/TiTab.h
\nClasses/TiTabGroup.h
\nClasses/TiUIOptionDialogProxy.m
\nClasses/TiUITabGroup.h
\nClasses/TiUITabGroup.m
\nClasses/TiUITabGroupProxy.h
\nClasses/TiUITabGroupProxy.m
\nClasses/TiUITabProxy.h
\nClasses/TiUITabProxy.m
\nClasses/TiUIWindowProxy.m
\nClasses/TiWindowProxy.h
\nClasses/TiWindowProxy.m
\nMyApp.xcodeproj/project.pbxproj
\nbuild/build.log
\nbuild/Debug-iphonesimulator/MyApp.app/MyApp
\nbuild/Debug-iphonesimulator/MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
\nbuild/Release-iphoneos/MyApp.app/MyApp
\nbuild/Release-iphoneos/MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/build-state.dat
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/build-state~.dat
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/MyApp.LinkFileList
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiUITabGroup.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiUITabGroupProxy.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiUIWindowProxy.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/TiWindowProxy.o
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/MyApp-project-headers.hmap
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/MyApp.dep
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/MyApp.hmap
\nbuild/MyApp.build/Debug-iphonesimulator/MyApp.build/MyApp~.dep
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/build-state.dat
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/build-state~.dat
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv6/MyApp
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv6/MyApp.LinkFileList
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv6/TiUITabGroup.o
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv6/TiUITabGroupProxy.o
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv6/TiUIWindowProxy.o
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv6/TiWindowProxy.o
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv7/MyApp
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv7/MyApp.LinkFileList
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv7/TiUITabGroup.o
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv7/TiUITabGroupProxy.o
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv7/TiUIWindowProxy.o
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/Objects-normal/armv7/TiWindowProxy.o
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/MyApp-project-headers.hmap
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/MyApp.dep
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/MyApp.hmap
\nbuild/MyApp.build/Release-iphoneos/MyApp.build/MyApp~.dep

\n

I'd really appreciate a fix or a workaround for this, since it's\npretty much a showstopper for us.

\n

Cheers,
\nCraig

{html}", "updateAuthor": { "name": "craigmarvelley", "key": "craigmarvelley", "displayName": "Craig Marvelley", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:24:05.000+0000", "updated": "2011-04-15T03:24:05.000+0000" }, { "id": "128926", "author": { "name": "craigmarvelley", "key": "craigmarvelley", "displayName": "Craig Marvelley", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

I've found the issue, but not the cause. The defines.h file is\nmissing includes for all the titanium UI components I'm using in\nthe application. When running the code in the simulator all\ncomponents are included by default, whereas when building for a\ndevice the includes are done dynamically. What's probably happening\nis Titanium isn't picking up on the use of the modules in the code,\nand not including them in the file.

\n

Are you using the helium library by any chance? I'm wondering if\nthat, or its advocated practice of loading components in a separate\nscope, is contributing to this issue.

{html}", "updateAuthor": { "name": "craigmarvelley", "key": "craigmarvelley", "displayName": "Craig Marvelley", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:24:06.000+0000", "updated": "2011-04-15T03:24:06.000+0000" }, { "id": "128927", "author": { "name": "matthewlanham", "key": "matthewlanham", "displayName": "Matthew Lanham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

When we debugged this issue and messed around for ages with it,\nwe found it was because we didn't have a tab in place, our app\nwasn't using tabs to begin with and this seemed to cause issues, we\nput some tabs in and everything went back to normal...

{html}", "updateAuthor": { "name": "matthewlanham", "key": "matthewlanham", "displayName": "Matthew Lanham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:24:06.000+0000", "updated": "2011-04-15T03:24:06.000+0000" }, { "id": "128928", "author": { "name": "craigmarvelley", "key": "craigmarvelley", "displayName": "Craig Marvelley", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Yeah, I think I've the same problem but with a different cause -\nI'm adding tabs to the group but not in the global scope, and it\ndoesn't look like they're being picked up.

{html}", "updateAuthor": { "name": "craigmarvelley", "key": "craigmarvelley", "displayName": "Craig Marvelley", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:24:06.000+0000", "updated": "2011-04-15T03:24:06.000+0000" }, { "id": "128929", "author": { "name": "jesush.christ", "key": "jesush.christ", "displayName": "Jesus H. Christ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

This is a limitation of the compiler when you don't explicitly\nuse createTab in your code, but can be worked around.

\n

The bundler tries to only include modules that it needs to in\norder to keep the footprint of your app relatively small (in\nfile-size). In order to do this, the compiler tries to determine\nwhat modules you are using in your project and only includes those\nin the final .app package. It looks for Titanium 'create' functions\n(such as createButton, createLabel, createTabGroup,\ncreateTableView, etc.).

\n

In a normal project where you do something along the lines:

\n
\nTi.UI.createTableView(...);\nTi.UI.createTabGroup();\nTi.UI.createTab({...});\nTi.UI.createTab({...});\nTi.UI.createTab({...});\n
\n

Based on the parsing mechanism that it uses, the compiler comes\naway with the following unique modules:

\n\n

However, the class files for all the tab class files checks for\njust TAB (not TABGROUP)... as seen here from\nTiUITabGroupProxy.h:

\n
\n#ifdef USE_TI_UITAB\n#endif\n
\n

...so unless you explicitly call TI.UI.createTab(...) in your\ncode somewhere, you will run into this issue.

\n

An easy solution would be to put:

\n
\nTi.UI.createTabGroup;\n
\n

Somewhere in your app.js file.

\n

The permanent fix would be to change the compiler to merge TAB\nand TABGROUP into one, or change the header files to respect either\nconstant (USE_TI_UITAB || USE_TI_UITABGROUP).

\n

-JRo.

{html}", "updateAuthor": { "name": "jesush.christ", "key": "jesush.christ", "displayName": "Jesus H. Christ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:24:06.000+0000", "updated": "2011-04-15T03:24:06.000+0000" }, { "id": "128930", "author": { "name": "danielarroyo", "key": "danielarroyo", "displayName": "Daniel Arroyo", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

I have the same problem. After building a hw build my defines.h\nbecomes like this:

\n

// Warning: this is generated file. Do not modify!

\n

define TI_VERSION 1.6.1

\n

define USE_TI_ANALYTICS 1

\n

define USE_TI_NETWORK 1

\n

define USE_TI_PLATFORM 1

\n

define USE_TI_UI 1

\n

define USE_TI_INCLUDE 1

\n

define USE_TI_UIALERTDIALOG 1

\n

define USE_TI_API 1

\n

define USE_TI_APIINFO 1

\n

define USE_TI_PLATFORMID 1

\n

define USE_TI_NETWORKHTTPCLIENT 1

\n

I'm using Titanium 1.6.1, XCode 4 for the iPhone

{html}", "updateAuthor": { "name": "danielarroyo", "key": "danielarroyo", "displayName": "Daniel Arroyo", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:24:07.000+0000", "updated": "2011-04-15T03:24:07.000+0000" }, { "id": "128931", "author": { "name": "danielarroyo", "key": "danielarroyo", "displayName": "Daniel Arroyo", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

even more info:

\n

It seems that I was able to fix this by taking my code out of\nthe /Resources/iphone directory into the /Resources directory.

\n

I'm guessing this is regression for 1.6.1 ?

{html}", "updateAuthor": { "name": "danielarroyo", "key": "danielarroyo", "displayName": "Daniel Arroyo", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:24:07.000+0000", "updated": "2011-04-15T03:24:07.000+0000" }, { "id": "193639", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Sample code is incomplete. With some modifications was unable to reproduce on master (2.1.0.848d711).", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-03T15:54:19.000+0000", "updated": "2012-05-03T15:54:19.000+0000" }, { "id": "214473", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "body": "OS: Mac OS X Lion 10.7.4\r\nTitanium Studio, build: 2.1.1.201208091713\r\nTitanium SDK, build: 2.2.0.v20120813184911; 2.1.1.GA; 2.0.2.GA\r\n\r\nRunning app on devices (iPad 2 (5.1.1) and iPhone 4 (4.3.5)) gets an Application Error \"invalid method (create TabGroup) passed to UIModule at app.js (line 2)\"\r\n\r\niOS console log:\r\n[ERROR] Script Error = invalid method (createTabGroup) passed to UIModule at app.js (line 2).\r\n\r\nTest Code:\r\n\r\n{code}\r\nvar win = Ti.UI.createWindow();\r\nvar tabGroup = Ti.UI.createTabGroup();\r\nvar label = Ti.UI.createLabel();\r\nvar x = {};\r\n \r\nx.win = win;\r\ntabGroup.win = win;\r\nlabel.win = win;\r\nwin.win = win;\r\nwin.tabGroup = tabGroup;\r\nlabel.tabGroup = tabGroup;\r\nx.tabGroup = tabGroup;\r\ntabGroup.tabGroup = tabGroup;\r\n \r\nTi.API.info('x.win == ' + x.win);\r\nTi.API.info('tabGroup.win == ' + tabGroup.win);\r\nTi.API.info('label.win == ' + label.win);\r\nTi.API.info('win.win == ' + win.win);\r\nTi.API.info('win.tabGroup == ' + win.tabGroup);\r\nTi.API.info('label.tabGroup == ' + label.tabGroup);\r\nTi.API.info('x.tabGroup == ' + x.tabGroup);\r\nTi.API.info('tabGroup.tabGroup == ' + tabGroup.tabGroup);\r\n \r\nalert('View Log Info...');\r\n{code}", "updateAuthor": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-08-14T16:04:13.000+0000", "updated": "2012-08-14T16:04:13.000+0000" }, { "id": "215904", "author": { "name": "jyounus", "key": "jyounus", "displayName": "Junaid Younus", "active": true, "timeZone": "Europe/London" }, "body": "Tested Dustin's code on the iOS simulator using TiSDK 2.2.0v20120821095711, I get the following console output:\r\n\r\n{code}\r\n[INFO] x.win == [object TiUIWindow]\r\n[INFO] tabGroup.win == [object TiUIWindow]\r\n[INFO] label.win == [object TiUIWindow]\r\n[INFO] win.win == [object TiUIWindow]\r\n[INFO] win.tabGroup == undefined\r\n[INFO] label.tabGroup == [object TiUITabGroup]\r\n[INFO] x.tabGroup == [object TiUITabGroup]\r\n[INFO] tabGroup.tabGroup == undefined\r\n{code}", "updateAuthor": { "name": "jyounus", "key": "jyounus", "displayName": "Junaid Younus", "active": true, "timeZone": "Europe/London" }, "created": "2012-08-23T15:04:28.000+0000", "updated": "2012-08-23T15:04:28.000+0000" }, { "id": "375426", "author": { "name": "mano_mykingdom", "key": "mano_mykingdom", "displayName": "Manojkumar Murugesan", "active": true, "timeZone": "Asia/Kolkata" }, "body": "Occurs when TabGroup / Tab components are declared using $.UI.create and not using XML / Ti.UI.create method.", "updateAuthor": { "name": "mano_mykingdom", "key": "mano_mykingdom", "displayName": "Manojkumar Murugesan", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2016-01-28T15:21:35.000+0000", "updated": "2016-01-28T15:21:35.000+0000" }, { "id": "452832", "author": { "name": "ahutton", "key": "ahutton", "displayName": "Alan Hutton", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing. Unable to reproduce.\r\n\r\nAxway Appcelerator Studio, build: 5.1.4.201909061933 \r\nmacOS : 10.14.6\r\nNode.js Version : 8.9.1\r\nnpm Version : 5.5.1\r\nAppcelerator CLI : 7.1.1\r\nTitanium CLI\r\nCLI Version : 5.2.1\r\nnode-appc Version : 0.2.49\r\nTitanium SDKs : 8.2.0.GA\r\n", "updateAuthor": { "name": "ahutton", "key": "ahutton", "displayName": "Alan Hutton", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-11-20T21:38:36.000+0000", "updated": "2019-11-20T21:38:36.000+0000" } ], "maxResults": 12, "total": 12, "startAt": 0 } } }