{ "id": "132600", "key": "TIMOB-17270", "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": null, "resolutiondate": null, "created": "2014-07-03T21:52:10.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "cb-tooling", "pm2", "qe-3.3.0" ], "versions": [ { "id": "15422", "description": "Release 3.3.0", "name": "Release 3.3.0", "archived": false, "released": true, "releaseDate": "2014-07-16" } ], "issuelinks": [ { "id": "52486", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "63352", "key": "TIMOB-2720", "fields": { "summary": "Special characters in application name", "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 } } } }, { "id": "38929", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "131169", "key": "TIMOB-17161", "fields": { "summary": "Android: HttpResponseException \"No Response\" from Analytics when app name contains á, é, í, ó, or ú", "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": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "39234", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "133454", "key": "TIMOB-17349", "fields": { "summary": "Remove non-production npm dependencies from BlackBerry modules", "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": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2016-08-19T17:20:37.000+0000", "status": { "description": "This issue was once resolved, but the resolution was deemed incorrect. From here issues are either marked assigned or resolved.", "name": "Reopened", "id": "4", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" }, { "id": "13103", "name": "CLI", "description": "Node-based command line interface" } ], "description": "h5.Description:\r\n1. Create a classic/alloy app with accented characters in the app name. e.g ånålytiçs.\r\n2. Build for android device/emulator.\r\n\r\nh5.Actual Result:\r\n1. The build fails with the errors below:\r\n{code}\r\nERROR] Failed to compile Java source files:\r\n[ERROR] \r\n[ERROR] javac: file not found: /Users/lokeshchoudhary/Desktop/workspaces/test_workspace/Myånålytiçs/build/android/gen/android/support/v7/appcompat/R.java\r\n[ERROR] Usage: javac \r\n[ERROR] use -help for a list of possible options\r\n{code}\r\n\r\nh5.Expected Result:\r\n1. The app with accented character in the app name should build & run successfully.\r\n\r\nh5. Solution:\r\nThe Titanium \"create\" and Android \"build\" commands must not allow non-ascii characters anywhere in the project path or any resource filenames.", "attachment": [ { "id": "49519", "filename": "diff.txt", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-08T00:42:38.000+0000", "size": 57423, "mimeType": "text/plain" } ], "flagged": false, "summary": "CLI: App name with accented characters fails to build ", "creator": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Environment:\r\nAppc Studio : 3.3.0.201406271159\r\nTi SDK : 3.3.0.v20140703093313\r\nMac OSX : 10.8.5\r\nAlloy : 1.4.0-rc2\r\nCLI - 3.3.0-rc4\r\nCode Processor: 1.1.1\r\nNexus 5 - android 4.4.4", "comment": { "comments": [ { "id": "312743", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tried out few scenarios:\r\nh6. Create an app with accented characters in studio:\r\nThe build fails giving the error mentioned above in the description.\r\n\r\nh6. Create an app with non-accented characters in studio & after creation change the app name to accented character in the tiapp.xml:\r\nThe app builds successfully\r\n\r\nh6. Create an app with accented characters in CLI:\r\nThe build fails giving the error mentioned above in the description.\r\n\r\nh6. Create an app with non-accented characters in CLI & after creation change the app name to accented character in the tiapp.xml:\r\nThe app builds successfully\r\n\r\nA diff between the project created initially with accented characters & an app created with normal characters & then changed to accented characters in tiapp.xml after creation is attached for reference.\r\n", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-08T00:30:40.000+0000", "updated": "2014-07-08T00:30:40.000+0000" }, { "id": "312861", "author": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "body": "On iOS we see similar results:\r\n\r\nIn all four scenarios that [~lchoudhary] has specified in his comment the app does build and install to device.\r\nHowever, applications that are created with accented characters, as apposed to those edited after creation to contain accented characters, will freeze on the splash screen.", "updateAuthor": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-08T17:42:20.000+0000", "updated": "2014-07-08T17:42:20.000+0000" }, { "id": "313169", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Master pull request: https://github.com/appcelerator/titanium_mobile/pull/5897\r\n3_3_X pull request: https://github.com/appcelerator/titanium_mobile/pull/5898\r\n\r\nTo test, simply build a project that contains a special character in any directory containing the project.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-07-10T01:35:18.000+0000", "updated": "2014-07-10T01:35:18.000+0000" }, { "id": "313170", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Please note, this sets the default file encoding to UTF-8 when compiling. This _should_ be safe since we already warn about non UTF-8 encoding in files during the build process. However, I still would test this thoroughly on Windows and Mac. [Update] this evidently still has issues on Windows.\r\n\r\nMy suggestion is that we don't use UTF-8 characters in the file path.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-10T01:41:05.000+0000", "updated": "2014-07-10T01:52:27.000+0000" }, { "id": "313175", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Reviewing this, I'm not positive this is the complete fix. Note that passing in the character encoding has been used as a fix for other projects:\r\n\r\nhttps://bugzilla.xamarin.com/show_bug.cgi?id=15559\r\n\r\nHowever, it seems to me that we should also be stripping the unicode characters from the path. The folder name does not need to be:\r\n\r\n/Users/ingo/Documents/Projects/ånalytics (for instance)\r\n\r\nHowever, if the CLI did just that, would that cause problems for Studio? Or is Studio passing in the folder name to the CLI? [~cwilliams]\r\n", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-10T02:32:22.000+0000", "updated": "2014-07-10T02:32:22.000+0000" }, { "id": "313232", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "If the user enters a project name with some UTF-8 character, then we will use that as the project name (as declared in Eclipse's .project file that will be placed in the root), but we also _default_ to using the project name as the folder name which is standard Eclipse behavior.\r\n\r\nWhen we create the project, we effectively call \"ti create --name --workspace-dir \" from the parent (workspace) directory. If the CLI takes that name and changes it to normalize it, then Studio will think the project is in \"/path/to/project/parent/ånalytics\" while CLI created \"/path/to/project/parent/analytics\". If we want Studio to not get confused then either the CLI and Studio have to agree on normalizing the names the same way (so we can update the expected project path), or Studio likely would need to implement some validation/enforcement of non-UTF-8 names (don't allow the user to use those characters), or we'd need some flag to tell CLI to just generate the files in the workspace-dir we pass directly rather than creating a subfolder from the project name (so we can normalize the name and know what it will be and CLI never creates the top-level folder based on project name).", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2014-07-10T13:48:59.000+0000", "updated": "2014-07-10T13:48:59.000+0000" }, { "id": "313292", "author": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tested on:\r\nMac OSX 10.9.4\r\nWindows 8.1\r\nAppcelerator Studio, build: 3.3.0.201407081443\r\nTitanium SDK, build: 3.3.0.v20140709184436\r\nTitanium CLI, build: 3.3.0-rc4\r\nAlloy: 1.4.0-rc5\r\n\r\nApps containing special characters in the name build and install as expected on Android from a Mac.\r\nHowever, they fail on Windows 8.1.\r\n\r\n+Extra information+\r\nWhile apps with special characters in the name build and install from a Mac, if the app contains a file with a special character (e.g. \"fileØne.js\") then the app will throw an error if the file is read. \r\n\r\n{code}\r\nE/TiAssetHelper( 8264): Error while reading asset \"Resources/fileØne.js\":\r\nE/TiAssetHelper( 8264): java.io.FileNotFoundException: Resources/fileØne.js\r\nE/TiAssetHelper( 8264): \tat android.content.res.AssetManager.openAsset(Native Method)\r\nE/TiAssetHelper( 8264): \tat android.content.res.AssetManager.open(AssetManager.java:315)\r\nE/TiAssetHelper( 8264): \tat android.content.res.AssetManager.open(AssetManager.java:289)\r\nE/TiAssetHelper( 8264): \tat org.appcelerator.kroll.util.KrollAssetHelper.readAsset(KrollAssetHelper.java:77)\r\nE/TiAssetHelper( 8264): \tat org.appcelerator.kroll.runtime.v8.V8Runtime.nativeRunModule(Native Method)\r\nE/TiAssetHelper( 8264): \tat org.appcelerator.kroll.runtime.v8.V8Runtime.doRunModule(V8Runtime.java:159)\r\nE/TiAssetHelper( 8264): \tat org.appcelerator.kroll.KrollRuntime.handleMessage(KrollRuntime.java:289)\r\nE/TiAssetHelper( 8264): \tat org.appcelerator.kroll.runtime.v8.V8Runtime.handleMessage(V8Runtime.java:185)\r\nE/TiAssetHelper( 8264): \tat android.os.Handler.dispatchMessage(Handler.java:95)\r\nE/TiAssetHelper( 8264): \tat android.os.Looper.loop(Looper.java:137)\r\nE/TiAssetHelper( 8264): \tat org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:112)\r\n{code}", "updateAuthor": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-10T18:23:29.000+0000", "updated": "2014-07-10T18:23:29.000+0000" }, { "id": "313310", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "According to https://github.com/android/platform_frameworks_base/blob/master/tools/aapt/AaptAssets.cpp#L27-L57, {{aapt}} does not support any non-ascii characters in filenames.\r\n\r\nThe correct solution is to disallow projects to be created with names or in directories that contain non-ascii characters. Also, the Android build command will need to gracefully fail if the project is in a path that contains a non-ascii character or if any of the resources contain a non-ascii character in the filename.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-07-10T20:20:40.000+0000", "updated": "2014-07-10T20:20:40.000+0000" }, { "id": "313329", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Here's the revert for the PRs above:\r\n\r\nMaster: https://github.com/appcelerator/titanium_mobile/pull/5902\r\n3_3_X: https://github.com/appcelerator/titanium_mobile/pull/5903", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-07-10T21:21:53.000+0000", "updated": "2014-07-10T21:21:53.000+0000" }, { "id": "315110", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "I think the underlying issue here is the same - Java not liking filenames with characters outside ASCII/the default charset/encoding.", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2014-07-21T20:43:17.000+0000", "updated": "2014-07-21T20:43:17.000+0000" }, { "id": "364790", "author": { "name": "delmotte", "key": "delmotte", "displayName": "Thiago Delmotte", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I am building an app with accent in the app name, on the tiapp.xml and I am getting the error below:\r\n\r\n[ERROR] xcodebuild: error: The project named \"Pinión\" does not contain a scheme named \"Pinión\". The \"-list\" option can be used to find the names of the schemes in the project.\r\n\r\nCould you help me?", "updateAuthor": { "name": "delmotte", "key": "delmotte", "displayName": "Thiago Delmotte", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-09-23T14:54:50.000+0000", "updated": "2015-09-23T14:54:50.000+0000" }, { "id": "364796", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~delmotte] The issue you are experiencing is related to iOS, however this ticket is for an Android issue. I'm able to reproduce your issue and I've created a new issue that talks specifically about your issue: TIMOB-19571. Please watch that ticket to track progress on fixing it.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2015-09-23T15:32:19.000+0000", "updated": "2015-09-23T15:32:19.000+0000" }, { "id": "364804", "author": { "name": "delmotte", "key": "delmotte", "displayName": "Thiago Delmotte", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Sorry for that. I am watching iOS Ticket! Thank you! ", "updateAuthor": { "name": "delmotte", "key": "delmotte", "displayName": "Thiago Delmotte", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-09-23T16:30:07.000+0000", "updated": "2015-09-23T16:30:07.000+0000" } ], "maxResults": 13, "total": 13, "startAt": 0 } } }