{ "id": "169757", "key": "TIMOB-25269", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": "19906", "description": "", "name": "Release 6.3.0", "archived": false, "released": true, "releaseDate": "2017-11-01" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-10-31T18:48:24.000+0000", "created": "2017-09-13T07:23:09.000+0000", "epic": { "id": 169755, "key": "TIMOB-25267", "name": "iOS: Add support for iPhone X", "summary": "iOS: Add support for iPhone X", "color": { "key": "color_5" }, "done": false }, "priority": { "name": "High", "id": "2" }, "labels": [ "appleblocked", "applebug", "iphonex" ], "versions": [], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-11-13T08:57:15.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" } ], "description": "*(Currently blocked by a bug inside Xcode, see the comments below)*\r\n\r\nAdd small change to iOS-build to add the new launch-screen to the asset-catalog. Please note that this only applies for custom splash-screens. Everyone using storyboards (the recommended way be Apple these days that we also support) will not have to change anything.\r\n", "attachment": [ { "id": "63246", "filename": "expected-behavior.png", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-13T12:21:46.000+0000", "size": 166475, "mimeType": "image/png" } ], "flagged": false, "summary": "iPhone X: Support new launch-images (when not using storyboards)", "creator": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "comment": { "comments": [ { "id": "427832", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (timob/master): https://github.com/appcelerator/titanium_mobile/pull/9423\r\nPR (timob/6_3_X): https://github.com/appcelerator/titanium_mobile/pull/9427\r\nPR (alloy/master): https://github.com/appcelerator/alloy/pull/849\r\n\r\nTest-Case:\r\n# Create a new App with {{appc new -p ios}}\r\n# Run the app on an iPhone X simulator\r\n# Run the app on an iPhone 7 simulator (or any other one lower than X)\r\n# Confirm that the app is full-screen and not cropped", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-13T12:21:33.000+0000", "updated": "2017-09-17T20:36:33.000+0000" }, { "id": "427894", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~hknoechel] I believe you forgot to add some code in TiUtils and TiRootViewController - on app start the app will display after the correct splashscreen the Default-Portrait-736h@3x.png image as bg of the root view wich will create an ugly \"zoom\" effect. Thanks.", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-14T16:43:54.000+0000", "updated": "2017-09-14T16:43:54.000+0000" }, { "id": "427895", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Good catch Dan, I didn't think about that so far! Storyboards are so much nicer :-). Will update the PR's!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-14T16:54:06.000+0000", "updated": "2017-09-14T16:54:06.000+0000" }, { "id": "427896", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "Sadly we can't always use storyboards :(\r\n\r\nThank you!", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-14T16:56:45.000+0000", "updated": "2017-09-14T16:56:45.000+0000" }, { "id": "427897", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~rborn] PR's updated. Will need to do more testing tomorrow!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-14T17:29:22.000+0000", "updated": "2017-09-14T17:29:22.000+0000" }, { "id": "427929", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~hknoechel] sadly is not ok yet, the 736h image will be found anyway in the TiRootViewController so the image will be defined. I think you need to implement something like the code below in TiUtils, similar to *isRetinaiPhone6* and then use it inside the TiRootViewController\r\n\r\n{code:objc}\r\n+(BOOL)isRetinaiPhoneX\r\n{\r\n if ([TiUtils isIOS8OrGreater]) {\r\n CGSize mainScreenBoundsSize = [[UIScreen mainScreen] bounds].size;\r\n return (mainScreenBoundsSize.height == 812 || mainScreenBoundsSize.width == 812);\r\n }\r\n return NO;\r\n}\r\n{code}\r\n\r\nThank you.\r\n\r\n", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-15T10:26:33.000+0000", "updated": "2017-09-15T10:26:33.000+0000" }, { "id": "427930", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey Dan, yeah I nearly expected that. Let me spend a bit more time on this to not rush. Updating soon.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-15T10:39:09.000+0000", "updated": "2017-09-15T10:39:09.000+0000" }, { "id": "427969", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Ok, here we go: I updated the default-screen handler to grab the correct images and distinguish between iPhone 6 Plus and iPhone X as well. But unfortunately, the portrait screen right now will still look stretched, because it won't be able to find the {{LaunchImage-1100-Portrait-2436h@3x.png}} inside the copied app. But here is the thing: It's the same for native apps running with manual images, so likely Apple has an issue with not copying it over correctly. I'll file a radar for that on Monday. More on that as I hear back from Apple!\r\n\r\n*EDIT*: I've opened this [Stackoverflow|https://stackoverflow.com/questions/46263795/iphone-x-incorrect-launch-screen-orientation-used] to get some more feedback from the iOS community. Radar also filed.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-16T22:04:13.000+0000", "updated": "2017-09-17T12:30:32.000+0000" }, { "id": "428005", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~hknoechel] Hey, I saw some changes in the PR, also added a comment. Is it better or you're still waiting for Apple's reply? Thnx.", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-18T10:09:15.000+0000", "updated": "2017-09-18T10:09:15.000+0000" }, { "id": "428170", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~hknoechel] any news from Apple? or any news at all? :)", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-20T16:27:44.000+0000", "updated": "2017-09-20T16:27:44.000+0000" }, { "id": "428185", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "No feedback regarding the radar so far, only some people with the same issue in the native world. Looks like most apps are using storyboards these days. Still no reason to not do this, but it's hard without the Apple tooling working :-(", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-20T20:32:21.000+0000", "updated": "2017-09-20T20:32:21.000+0000" }, { "id": "428602", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Update: I received feedback from Apple today and they can confirm it is a bug in their tooling. Until we know more, please use storyboards for the iPhone X. \"Luckily\" we have another full month before the iPhone X gets shipped, so developers (both native and Titanium ones) can push their apps when Apple provides a fix. Thanks!\r\n\r\nP.S.: The radar is [rdar://34480903|https://openradar.appspot.com/radar?id=6124283306704896]", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-29T09:53:57.000+0000", "updated": "2017-09-29T09:54:42.000+0000" }, { "id": "428605", "author": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "body": "Ok, thank you", "updateAuthor": { "name": "rborn", "key": "rborn", "displayName": "Dan Tamas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-29T13:04:45.000+0000", "updated": "2017-09-29T13:04:45.000+0000" }, { "id": "428941", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "The latest answer from Apple:\r\n{quote}\r\nThank you for following up, and for the bug report. I confirmed that this issue is present with my own tests. However, I can't advise you on any future releases from Apple. I encourage you to test this issue on future beta and public releases of the iOS 11 SDK, and to update your bug report with your results.\r\n{quote}\r\nTo unblock the 6.3.0 release, I will move it out of the current release and re-schedule this for 7.0.0 - when Apple hopefully will provide a fix for Xcode until then. Until then, please use Storyboards to support the iPhone X and duplicate the above radar (*rdar://34480903*) to prioritize the issue at Apple.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-11T13:08:45.000+0000", "updated": "2017-10-11T13:08:45.000+0000" }, { "id": "429225", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Xcode 9.1 Beta 2 seems to fix the issue! Will update the PR accordingly.\r\n\r\n*EDIT*:\r\nmaster: https://github.com/appcelerator/titanium_mobile/pull/9533\r\n6_3_X: https://github.com/appcelerator/titanium_mobile/pull/9534\r\n &: https://github.com/appcelerator/titanium_mobile/pull/9573", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-10-18T08:49:46.000+0000", "updated": "2017-10-31T19:24:30.000+0000" }, { "id": "430260", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified in SDK builds 6.3.0.GA & 7.0.0.v20171107142411", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-11-07T23:58:43.000+0000", "updated": "2017-11-07T23:58:43.000+0000" }, { "id": "430508", "author": { "name": "nicolomonili", "key": "nicolomonili", "displayName": "nicolomonili", "active": true, "timeZone": "Europe/Rome" }, "body": "Update the Docs for iPhone X [http://docs.appcelerator.com/platform/latest/#!/guide/Icons_and_Splash_Screens|http://docs.appcelerator.com/platform/latest/#!/guide/Icons_and_Splash_Screens]", "updateAuthor": { "name": "nicolomonili", "key": "nicolomonili", "displayName": "nicolomonili", "active": true, "timeZone": "Europe/Rome" }, "created": "2017-11-13T08:57:15.000+0000", "updated": "2017-11-13T08:57:15.000+0000" } ], "maxResults": 18, "total": 18, "startAt": 0 } } }