{ "id": "139305", "key": "TIMOB-17993", "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": [ { "id": "16723", "description": "Windows Platform Support, ListView updates, Vector overlays in maps", "name": "Release 4.1.0", "archived": false, "released": true, "releaseDate": "2015-07-08" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-07-06T21:44:44.000+0000", "created": "2014-11-09T13:12:33.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "merge-4.0.0" ], "versions": [], "issuelinks": [ { "id": "47540", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "142546", "key": "APSTUD-8372", "fields": { "summary": "Allow setting CFBundleVersion in tiapp.xml", "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": "None", "id": "6" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "47541", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "inwardIssue": { "id": "147480", "key": "TIMOB-18868", "fields": { "summary": "Do not overwrite Info.plist keys set by user", "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": "None", "id": "6" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "47743", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "147851", "key": "TIMOB-18909", "fields": { "summary": "Expose build and named version via Ti.App", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "updated": "2015-07-06T21:44:48.000+0000", "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" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" }, { "id": "10207", "name": "Tooling" } ], "description": "Early on the growth of iOS development the use of CFBundleVersion and CFBundleShortVersionString interchangeably was a tolerable behavior.\r\n\r\nHowever, these are two unique keys. The problem with using them interchangeably was originally raised when the Testflight ad-hoc distribution service became available. \r\n\r\nWith Apple now having acquired the Testflight platform and incorporating it into their iTunes Connect platform, it is time to separate these two keys and to use them properly.\r\n\r\nThis will require changes to the CLI tooling and the exposing of these to the tiapp.xml editor in Studio.\r\n\r\nParity: TISTUD-5088 Android: Expose versionCode and versionName in TiApp Editor View\r\nReference: https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html\r\n\r\n{quote}\r\nCFBundleShortVersionString\r\n\r\nCFBundleShortVersionString (String - iOS, OS X) specifies the release version number of the bundle, which identifies a released iteration of the app. The release version number is a string comprised of three period-separated integers. The first integer represents major revisions to the app, such as revisions that implement new features or major changes. The second integer denotes revisions that implement less prominent features. The third integer represents maintenance releases.\r\n\r\nThe value for this key differs from the value for CFBundleVersion, which identifies an iteration (released or unreleased) of the app. This key can be localized by including it in your InfoPlist.strings files.\r\n{quote}\r\n\r\n{quote}\r\nCFBundleVersion\r\n\r\nCFBundleVersion (String - iOS, OS X) specifies the build version number of the bundle, which identifies an iteration (released or unreleased) of the bundle. The build version number should be a string comprised of three non-negative, period-separated integers with the first integer being greater than zero. The string should only contain numeric (0-9) and period (.) characters. Leading zeros are truncated from each integer and will be ignored (that is, 1.02.3 is equivalent to 1.2.3). This key is not localizable.\r\n{quote}", "attachment": [], "flagged": false, "summary": "iOS: Split CFBundleVersion and CFBundleShortVersionString ", "creator": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "environment": null, "closedSprints": [ { "id": 345, "state": "closed", "name": "2015 Sprint 04 SDK", "startDate": "2015-02-14T01:00:53.297Z", "endDate": "2015-03-01T01:00:00.000Z", "completeDate": "2015-02-28T15:39:43.652Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "331316", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "Currently, if we place the following in the tiapp.xml, it is overwritten by tooling to match the value of {code}1.0.1{code}\r\n{code}\r\n\r\n \r\n \r\n CFBundleShortVersionString\r\n 12.0\r\n{code}\r\n\r\nGenerated info.plist:\r\n{code}\r\nCFBundleVersion\r\n1.0.1\r\nCFBundleShortVersionString\r\n1.0.1\r\n{code}\r\n\r\nIf we try to force {code}CFBundleVersion{code} it also is overwritten.", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2014-11-09T18:25:24.000+0000", "updated": "2014-11-09T18:27:58.000+0000" }, { "id": "331317", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Just out of curiosity, how does Xcode expose these two versions? I presume that one of them has its own field on the project properties screen. Does the other version have its own field too or do you have to edit the Info.plist directly?", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-11-09T18:30:27.000+0000", "updated": "2014-11-09T18:30:27.000+0000" }, { "id": "331322", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "!http://content.screencast.com/users/Stephen_Feather/folders/Jing/media/2ac2fd9e-eba3-4ff3-aff8-2ae554b5a8ed/00000676.png!", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2014-11-10T00:56:16.000+0000", "updated": "2014-11-10T00:56:16.000+0000" }, { "id": "331421", "author": { "name": "timanrebel", "key": "timanrebel", "displayName": "Timan Rebel", "active": true, "timeZone": "Europe/London" }, "body": "[~fokke] wrote a great piece on how to handle both iOS and Android versioning http://www.tidev.io/2014/10/29/versioning-builds-and-releases/", "updateAuthor": { "name": "timanrebel", "key": "timanrebel", "displayName": "Timan Rebel", "active": true, "timeZone": "Europe/London" }, "created": "2014-11-10T19:28:19.000+0000", "updated": "2014-11-10T19:29:09.000+0000" }, { "id": "331424", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "I'll be polite, but actually, no he didn't.\r\nHis approach to android versioning is nonstandard as your builds do not increment by 1, but by large numbers. Good luck managing that in the play store.\r\n\r\n{code}\r\ngrunt.registerTask('tiapp', function() {\r\n var tiapp = require('tiapp.xml').load();\r\n var versions = tiapp.version.split('.');\r\n //TODO: if 3rd number reaches 999, reset to 1 and increment 2nd number\r\n versions[2] = parseInt(versions[2]) + 1;\r\n tiapp.version = versions.join('.');\r\n \r\n var androids = tiapp.doc.documentElement.getElementsByTagName('android');\r\n \r\n if (androids.length === 1) {\r\n var manifests = androids.item(0).getElementsByTagName('manifest');\r\n \r\n if (manifests.length === 1) {\r\n var manifest = manifests.item(0);\r\n var versionCode = parseInt(manifest.getAttribute('android:versionCode')) + 1;\r\n grunt.log.writeln(versionCode);\r\n manifest.setAttribute('android:versionName', versions.slice(0, 3).join('.'));\r\n manifest.setAttribute('android:versionCode', versionCode);\r\n }\r\n }\r\n \r\n tiapp.write();\r\n \r\n grunt.log.writeln(require('util').format('Bumped version to: %s', tiapp.version));\r\n });\r\n{code}\r\n\r\nthe above fits more inline with what Apple and Google expect (how do I know what apple expects? I look at what their own native tool agvtool does)\r\n\r\nThe problem is that Apple expects 2 values (much as Google does) and ATM the Appc tooling does not allow for this, thus the ticket.\r\n\r\n\r\nAVGTool Question: https://developer.apple.com/library/ios/qa/qa1827/_index.html", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2014-11-10T19:39:25.000+0000", "updated": "2014-11-10T19:44:11.000+0000" }, { "id": "331427", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "[~sfeather] Rad, thanks for the pic. That's what I needed. :)", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-11-10T19:45:29.000+0000", "updated": "2014-11-10T19:45:29.000+0000" }, { "id": "334010", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "I agree [~sfeather]\r\n\r\nAnd while I was revising my versioning, I did a PR to enable custom CFBundleVersion and CFBundleShortVersionString:\r\n\r\nhttps://github.com/appcelerator/titanium_mobile/pull/6408", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-11-27T09:32:46.000+0000", "updated": "2014-11-27T09:32:46.000+0000" }, { "id": "334147", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "Dated, but related is https://github.com/appcelerator/titanium_mobile/pull/4932", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-12-01T18:53:35.000+0000", "updated": "2014-12-01T18:53:35.000+0000" }, { "id": "340595", "author": { "name": "simensol", "key": "simensol", "displayName": "Simen Sol", "active": true, "timeZone": "Europe/Berlin" }, "body": "From testflightapp.com: «The services offered at TestFlightapp.com will shutdown on 2/26/2015». So, splitting CFBundleVersion and CFBundleShortVersionString becomes critical after 2/26/2015.", "updateAuthor": { "name": "simensol", "key": "simensol", "displayName": "Simen Sol", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-01-26T18:57:47.000+0000", "updated": "2015-01-26T18:57:47.000+0000" }, { "id": "342496", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "Notice that the CFBundleShortVersionString remains as '1.0' while the CFBundleVersion has been changed, allowing for a new binary to be uploaded without changing the app version.\r\n!http://content.screencast.com/users/Stephen_Feather/folders/Jing/media/5de97002-6fb9-4aa1-b5e8-157b2028f3ab/00000863.png!", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2015-02-07T21:01:49.000+0000", "updated": "2015-02-07T21:02:26.000+0000" }, { "id": "345647", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "Seems that TIMOB-3107 is a duplicate of this issue, too.", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2015-03-11T00:32:10.000+0000", "updated": "2015-03-11T00:32:10.000+0000" }, { "id": "347452", "author": { "name": "danielnichita@gmail.com", "key": "danielnichita@gmail.com", "displayName": "Daniel Nichita", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Ran headlong into this problem as I was trying to submit multiple builds of the same app version to Apple for TestFlight testing. iTunesConnect doesn't accept ipas with duplicate build numbers and since Titanium sets CFBundleVersion and CFBundleShortVersionString equal to each other based on version in tiapp.xml, subsequent submissions of an app of the same version fail to pass validation. The workaround is to open the project file in Xcode, increment the build number, regenerate ipa in Xcode, and resubmit via app loader or directly from organizer, doable, but kind of a pain.\r\n\r\n@Fokke Zandbergen: Many thanks for addressing this, but is there any chance this could be moved to an earlier sdk update before 4.1.0? I'm sure everyone is running into this problem with Apple's new TestFlight setup.", "updateAuthor": { "name": "danielnichita@gmail.com", "key": "danielnichita@gmail.com", "displayName": "Daniel Nichita", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-03-26T17:35:48.000+0000", "updated": "2015-03-26T17:35:48.000+0000" }, { "id": "350548", "author": { "name": "nicolomonili", "key": "nicolomonili", "displayName": "nicolomonili", "active": true, "timeZone": "Europe/Rome" }, "body": "There is no way , now with SDK 3.5.1, to manage CFBundleVersion and CFBundleShortVersionString ?", "updateAuthor": { "name": "nicolomonili", "key": "nicolomonili", "displayName": "nicolomonili", "active": true, "timeZone": "Europe/Rome" }, "created": "2015-04-23T14:20:22.000+0000", "updated": "2015-04-23T14:20:22.000+0000" }, { "id": "350566", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Unfortunately there is not, unless you cherry pick the PR:\r\nhttps://github.com/appcelerator/titanium_mobile/pull/6408\r\n\r\nAnother alternative is to use an {{major.minor.patch.build}} version. Titanium will then use {{major.minor.patch}} for CFBundleShortVersionString and {{major.minor.patch.build}} for CFBundleVersion. Not ideal, since it does not allow you to have {{major}} or {{major.minor}} for CFBundleShortVersionString, but at least you get unique builds.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-04-23T18:06:37.000+0000", "updated": "2015-04-23T18:06:37.000+0000" }, { "id": "350837", "author": { "name": "nicolomonili", "key": "nicolomonili", "displayName": "nicolomonili", "active": true, "timeZone": "Europe/Rome" }, "body": "So i hope that the version 4.1.0 comes out soon. This feature is essential for anyone who uses testflight", "updateAuthor": { "name": "nicolomonili", "key": "nicolomonili", "displayName": "nicolomonili", "active": true, "timeZone": "Europe/Rome" }, "created": "2015-04-27T07:02:33.000+0000", "updated": "2015-04-27T07:02:33.000+0000" }, { "id": "351242", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "@nicolomonili: 4.0 is still in RC so you might have to wait i bit longer. For TestFlight, simply add another integer, e.g.: 1.2.0.1, 1.2.0.2, ... which works perfect. ", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-04-30T07:25:31.000+0000", "updated": "2015-04-30T07:25:55.000+0000" }, { "id": "351465", "author": { "name": "jasonkneen", "key": "jasonkneen", "displayName": "Jason Kneen", "active": true, "timeZone": "Europe/London" }, "body": "Any update on this? It's a blocker for doing any WatchKit / Extension deployment to device.", "updateAuthor": { "name": "jasonkneen", "key": "jasonkneen", "displayName": "Jason Kneen", "active": true, "timeZone": "Europe/London" }, "created": "2015-05-02T11:27:47.000+0000", "updated": "2015-05-02T11:27:47.000+0000" }, { "id": "351469", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "My concern is that the PR adds functionality not requested in the ticket and tickets do not exist for the additional functionality. ", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2015-05-02T17:01:11.000+0000", "updated": "2015-05-02T17:01:11.000+0000" }, { "id": "351472", "author": { "name": "astjohn", "key": "astjohn", "displayName": "Adam", "active": true, "timeZone": "America/Havana" }, "body": "Paperwork over progress? If it matters that much, can we not just change the original ticket to match? This is a great addition that is in high demand at the moment.", "updateAuthor": { "name": "astjohn", "key": "astjohn", "displayName": "Adam", "active": true, "timeZone": "America/Havana" }, "created": "2015-05-03T00:43:02.000+0000", "updated": "2015-05-03T00:43:02.000+0000" }, { "id": "351473", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": " \"paperwork over progress\"? \r\n\r\n Interesting view of process and procedures. \r\n\r\nAdam, please understand that had the pull request not been so inflated with unrelated\" features\" you would be able to more easily add the requested feature this ticket specifically addressed to your own tisdk build until it is pulled into master. \r\n\r\n To the point, if the original pr author believes the additional features have value, he should take the time to create tickets to make his case. \r\n", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2015-05-03T01:01:43.000+0000", "updated": "2015-05-03T01:07:20.000+0000" }, { "id": "351474", "author": { "name": "astjohn", "key": "astjohn", "displayName": "Adam", "active": true, "timeZone": "America/Havana" }, "body": "As far as I can tell, the pull request adds three additional things pertaining to CFBundleIconFiles, UILaunchImages, and UIAppFonts wherein only these values are used when necessary. I doubt Fokke was trying to maliciously slip these into the build under the original pull request. I'm sure others would agree that the entire pull request is incredibly useful. If we really need issues created for each of the three additions, then perhaps someone could quickly do so. Even better, perhaps someone from Appcelerator could cherry-pick from his pull request if this is the major sticking point. I personally don't see this as a major hold up.\r\n\r\nIn fact, we have already used his pull request applied to 3.5.1. It worked wonderfully and allowed us to quickly use TestFlight. ", "updateAuthor": { "name": "astjohn", "key": "astjohn", "displayName": "Adam", "active": true, "timeZone": "America/Havana" }, "created": "2015-05-03T01:12:27.000+0000", "updated": "2015-05-03T01:12:27.000+0000" }, { "id": "351475", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "Obviously you are mistaken about it not being a major holdup, or the PR would have been merged already :)", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2015-05-03T01:21:30.000+0000", "updated": "2015-05-03T01:21:30.000+0000" }, { "id": "351476", "author": { "name": "astjohn", "key": "astjohn", "displayName": "Adam", "active": true, "timeZone": "America/Havana" }, "body": "Shannon, as I said... I don't see it as a major hold up, but I guess appcelerator does! :)\r\n\r\nPerhaps they can cherry-pick the parts that pertain to this issue though so it gets pushed through.", "updateAuthor": { "name": "astjohn", "key": "astjohn", "displayName": "Adam", "active": true, "timeZone": "America/Havana" }, "created": "2015-05-03T01:24:15.000+0000", "updated": "2015-05-03T01:24:15.000+0000" }, { "id": "351477", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "Who said anything about 'malicious' intent on Fokke's part?\r\n\r\nHaving seen good PRs languish and die around here over missing JIRAs, I'm saying the past expectations should be met regarding PRs.\r\nOther wise, the PR process becomes rather arbitrary.\r\n\r\nWait, someone (farfromrefug) raised the versioning problem over a YEAR AGO and that attempt to fix died because of a missing JIRA ticket (adam's paperwork comment applies here).\r\nWait, someone else (me) pushed versioning changes when Testflight first went live.\r\n\r\nTrust me, Adam, I have an interest in getting versioning correct. Why the issue keeps creeping back into Ti totally frustrates those of us that build real apps in real production environments.\r\n\r\n\r\n\r\n\r\n", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2015-05-03T01:26:25.000+0000", "updated": "2015-05-03T01:26:25.000+0000" }, { "id": "351478", "author": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "body": "The problem is limited resources. Everything has to be tested, regression tested, etc in order to make it into one of Appcelerator's certified (official) builds. So, when something has \"extra features\" beyond what a JIRA ticket requires, it gets thrown to the bottom of the priority list because of the mess of additional work to be done. I'd do the same thing in my OSS projects.\r\n\r\nEven the idea of them cherry-picking a part of the PR is a big ol' can of worms. People have complained before (and rightfully so) when their PRs got modified by Appcelerator... what happens is that an Appcelerator employee ends up, git-wise, getting credit for the PR instead of the original author. So, unless a PR is merge-ready, as-is, it's always going to be a problem.", "updateAuthor": { "name": "iotashan", "key": "iotashan", "displayName": "Shannon Hicks", "active": true, "timeZone": "America/Chicago" }, "created": "2015-05-03T01:29:26.000+0000", "updated": "2015-05-03T01:29:26.000+0000" }, { "id": "351485", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "To make sure no toes get hurt in the process:\r\n\r\n* New PR on master: [#6818|https://github.com/appcelerator/titanium_mobile/pull/6818]\r\n* Re-purposed the original PR [#6408|https://github.com/appcelerator/titanium_mobile/pull/6408] for a new issue on the bigger story: TIMOB-18868", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-05-03T07:48:25.000+0000", "updated": "2015-05-03T07:48:25.000+0000" }, { "id": "351488", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "I reviewed this PR and talked over the changes with Fokke, then did a full pass of functional testing. It properly allows users to override the CFBundleVersion and CFBundleShortVersionString via the custom Info.plist and the section of the tiapp.xml.\r\n\r\nThe PR also addressed other Info.plist values that were not user-overwritable. These additions are rational and welcome.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2015-05-03T08:47:44.000+0000", "updated": "2015-05-03T08:47:44.000+0000" }, { "id": "351490", "author": { "name": "astjohn", "key": "astjohn", "displayName": "Adam", "active": true, "timeZone": "America/Havana" }, "body": "Chris and Fokke: Thank you for your hard work on this!", "updateAuthor": { "name": "astjohn", "key": "astjohn", "displayName": "Adam", "active": true, "timeZone": "America/Havana" }, "created": "2015-05-03T12:24:47.000+0000", "updated": "2015-05-03T12:24:47.000+0000" }, { "id": "351496", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "All, thank you very much for assisting with this effort. I have marked this for merge-4.0.0 and we will discuss that on Monday.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-05-04T02:16:03.000+0000", "updated": "2015-05-04T02:16:03.000+0000" }, { "id": "357054", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified fixed, using:\r\n\r\nMacOS 10.11\r\nStudio 4.1.0.201507031129\r\nTi SDK 4.1.0.v20150706073311\r\nAppc NPM 4.1.0-1\r\nAppc CLI 4.1.0-5\r\nTi CLI 4.0.1\r\nAlloy 1.6.2\r\nNode v0.10.37\r\nJava 1.7.0_45\r\npreproduction\r\n\r\nAm able to set both bundle version strings via tiapp.xml or custom plist. Strings can be separate values and tested uploading to iTunes Connect, checking versions.", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-07-06T21:44:44.000+0000", "updated": "2015-07-06T21:44:44.000+0000" } ], "maxResults": 37, "total": 37, "startAt": 0 } } }