{ "id": "168439", "key": "TIMOB-24837", "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": "19572", "description": "Important fixes for 6.1.0", "name": "Release 6.1.1", "archived": false, "released": true, "releaseDate": "2017-06-16" }, { "id": "19790", "name": "ioslib 1.4.8", "archived": false, "released": true, "releaseDate": "2017-06-22" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-06-23T00:36:10.000+0000", "created": "2017-06-15T23:19:16.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2017-06-24T00:30:51.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": "10207", "name": "Tooling" } ], "description": "Xcode 8.3.3 introduced iOS SDK 10.3.1 which causes some troubles for ioslib. ioslib ties the simulator to the iOS SDK tied to the simulator runtime in the runtime's plist file, which is \"10.3\" even for \"10.3.1\". ioslib cheats and skips this and just associates the sim with the iOS SDK installed with Xcode.\r\n\r\nSince Xcode 8.3.3 comes with iOS 10.3.1, ioslib will naively define an iOS 10.3.1 simulator.\r\n\r\nWhen autoselecting a simulator, it scans the Xcode iOS Simulators, namely 10.3.1, and tries to load the simulator details, which are associated to the iOS SDK tied to the sim runtime. In this case, the 8.3 sim runtime is tied to iOS SDK 8.3 as defined in the sim runtime's plist.\r\n\r\nWhen ioslib tries to lookup a 10.3.1 simulator, it won't find any matches and hence the error:\r\n\r\n{code}\r\n[TRACE] [ioslib] No iOS Simulator UDID specified, searching for best match\r\n[TRACE] [ioslib] Scanning Xcodes: 8.3.3:8E3004b\r\n[ERROR] Unable to find any Xcode installations that supports at least iOS 10.\r\n{code}\r\n\r\nThe solution is to create a distinct list of iOS SDKs associated to each sim runtime based on both the sim runtime's plist and the output from {{simctl}}. While the plist will return \"10.3\", {{simctl}} will return \"10.3.1\". We can then loop over each version and define the same simulator for both iOS SDKs. Redundant? Yes. Does it work? Yes.\r\n\r\nOn a side note, there's a small bug where the correct simulator is being selected, but the wrong Xcode version. It is supposed to pick the most recent Xcode that supports the selected Xcode. However there's a bug where we A) don't filter unsupported Xcodes and B) we don't break the loop after the first recent match resulting in the oldest Xcode being selected.", "attachment": [], "flagged": false, "summary": "ioslib: Unable to autoselect iOS 10.3.1 sim with Xcode 8.3.3", "creator": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "environment": null, "closedSprints": [ { "id": 912, "state": "closed", "name": "2017 Sprint 13 Tooling", "startDate": "2017-06-18T16:15:17.914Z", "endDate": "2017-07-02T16:15:00.000Z", "completeDate": "2017-07-06T23:54:40.012Z", "originBoardId": 199 } ], "comment": { "comments": [ { "id": "422116", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "ioslib PR: https://github.com/appcelerator/ioslib/pull/63", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2017-06-15T23:22:38.000+0000", "updated": "2017-06-15T23:23:14.000+0000" }, { "id": "422166", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "TiSDK master PR: https://github.com/appcelerator/titanium_mobile/pull/9153\r\n\r\nTo test, install Xcode 8.3.2 and 8.3.3. You will have iOS SDK 10.3 and 10.3.1 respectively. Run {{ti info -t ios}} to verify. You should notice both 10.3 and 10.3.1 simulators. Note that the UDIDs are duplicated between 10.3 and 10.3.1 since from Xcode's perspective they (the sim runtimes) are identical. You should enable autoselecting (default) {{ti config ios.autoSelectDevice true}}. Then build an app for the simulator: {{ti build -p ios -I 10.3}} and {{ti build -p ios -I 10.3.1}}. Observe the trace log output at the very beginning to make sure it picks the correct Xcode version.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2017-06-16T17:16:17.000+0000", "updated": "2017-06-16T21:08:29.000+0000" }, { "id": "422485", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "FR Passed.\r\nThe correct Xcode/simulators are selected when using Xcode 8.2, 8.3.2, 8.3.3, and 9.0b. Tested by having Xcode(s) installed and building for sim, device, adhoc, and appstore, then verifying that the correct Xcode and/or simulator version was selected for the build, as well as ensuring the app would install/launch/verify.", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-06-21T18:05:31.000+0000", "updated": "2017-06-21T18:05:31.000+0000" }, { "id": "422562", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "6_1_X backport: https://github.com/appcelerator/titanium_mobile/pull/9174", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2017-06-22T19:09:46.000+0000", "updated": "2017-06-22T21:31:30.000+0000" }, { "id": "422703", "author": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I tested the back port version with this environment:\r\nNode Version: 6.10.3\r\nNPM Version: 3.10.10\r\nMac OS: 10.12.4\r\nAppc CLI: 6.2.2\r\nAppc CLI NPM: 4.2.9\r\nTitanium SDK version: 6.1.1.v20170623141152\r\nAppcelerator Studio, build: 4.9.0.201705302345\r\nXcode 8.3.3\r\n\r\nI tested with the above SDK version and verified that building to Sim and device worked as expected. I also checked that Ad Hoc builds and AppStore builds also continue to work. ", "updateAuthor": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-24T00:30:23.000+0000", "updated": "2017-06-24T00:30:23.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }