[DAEMON-259] iOS: Not able to select 11.4 simulator from studio
GitHub Issue | n/a |
Type | Bug |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2018-08-07T16:51:55.000+0000 |
Affected Version/s | n/a |
Fix Version/s | n/a |
Components | appcd-plugin-ios |
Labels | n/a |
Reporter | Shuo Liang |
Assignee | Chris Barber |
Created | 2018-06-21T04:26:39.000+0000 |
Updated | 2018-09-12T16:23:31.000+0000 |
Description
After upgrade Xcode 9.4.1, we can see there are version 11.4 simulators shows up in Xcode. But we can not see if from studio's run configure.
Reproduce
1. Upgrade Xcode to 9.4.1
2. Create/Use a default app.
3. Open run configuration, you can see iOS version is 11.4, Simulator version is 11.4, but still not able to select 11.4 simulator in the dropdown list. All simulators are still version 11.3 (attach screen shot)
4. But if you select 11.3 simulator, it always run into 11.4 simulator directly. (attach screen shot)
Note:
1. Run "appc info", the output looks all right. We can see both 11.3 and 11.4 simulators. (attached)
2. If we create app directly from Xcode, we can select target simulator as 11.4 or 11.3
Attachments
Looks like there is a discrepancy between *runtimeName* and *version* which studio fetches from the Appc Daemon iOS info. As you can see in the below content, runtimeName shown as "iOS 11.4" and "version" shown as "11.3"
Please find the attached Appc Daemon output for
appc appcd exec /ios/1.x/info
[^gistfile1.txt] Which is having only 11.3 iOS simulators. Please also find the output for ti info iOS commandappc ti info -o json -t ios > tiinfo_ios.txt
[^tiinfo_ios.txt] Interestingly, ti info is having both the 11.3 and 11.4 simulatorsPlease also find the output for
$instruments -s devices
which doesn't have any simulators with *11.3* version[~cbarber] [~eharris] FYI
Are you guys also seeing that you cannot debug when using XCode 9.4.1? Everything else appears to work but I cannot get the debugger to even attempt to connect, it just says disabled in the logs.
The problem is Apple botched the Xcode 9.4.1 release. It includes a iOS 11.4 sim runtime with an incorrect 11.3 version in the
profile.plist
. The sim runtime'sInfo.plist
does not contain the version number and furthermore, theprofile.plist
will contain any "patch" version number segments. As a workaround, we now parse the version from the bundle name (e.g.iOS 11.4
), then use that. If theprofile.plist
's version contains a version that starts with the parsed version, we use that instead. ioslib v2.2.3 https://github.com/appcelerator/ioslib/commit/4285b07e0529ac19f62426a0787f9d87a981f3a7 ioslib v1.7.4 https://github.com/appcelerator/ioslib/pull/82 appcd-plugin-ios PR: https://github.com/appcelerator/appcd-plugin-ios/pull/12 TiSDK master PR: https://github.com/appcelerator/titanium_mobile/pull/10237Merged to 7_3_X and master branches of titanium_mobile. Looks like this also needs to be integrated into the appc-cli. cc [~amukherjee]
Verified fixed using SDK 7.3.0.v20180807095741 and CLI 7.0.5-master.3. I am able to build for and launch apps on iOS 11.3 and 11.4 simulators from Studio, when selecting the corresponding option from the run drop-down. Also checked past sim versions and watch sims.