{ "id": "175567", "key": "TIMOB-28155", "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": "2020-09-26T16:51:56.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "ios14", "xcode12" ], "versions": [ { "id": "21051", "description": "", "name": "Release 9.2.0", "archived": false, "released": true, "releaseDate": "2020-09-23" }, { "id": "21052", "description": "", "name": "Release 9.3.0", "archived": false, "released": true, "releaseDate": "2020-12-14" }, { "id": "21092", "name": "Release 9.2.1", "archived": false, "released": true, "releaseDate": "2020-10-06" } ], "issuelinks": [], "assignee": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2020-11-05T14:50:54.000+0000", "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" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "When building a module (like our known friend [Ti.WidgetKit|https://github.com/hansemannn/titanium-widget-kit]) with Xcode 12 and deploying the parent app, the deployment fails. It can be reproduced with any sample project that includes the module!", "attachment": [ { "id": "67574", "filename": "app_extension_built_project.png", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-10-01T09:44:05.000+0000", "size": 166928, "mimeType": "image/png" }, { "id": "67575", "filename": "app_extension_own_project.png", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-10-01T09:44:05.000+0000", "size": 156372, "mimeType": "image/png" }, { "id": "67595", "filename": "WidgetKitTestApp.zip", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-10-08T06:37:07.000+0000", "size": 136307, "mimeType": "application/zip" } ], "flagged": false, "summary": "iOS 14: Including module built with Xcode 12 causes deployment error", "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": "457102", "author": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~hknoechel] Is it happening with this module only or any module built with Xcode 12 and titanium sdk 9.2.0.?\r\nAnd what are errors?", "updateAuthor": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-09-30T22:03:05.000+0000", "updated": "2020-09-30T22:03:05.000+0000" }, { "id": "457103", "author": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~hknoechel]\r\nThere is an issue in your module. For TitaniumKit.xcframework 'Embed & Sign' is selected. It should be 'Do Not Embed'.\r\nTo fix it -\r\nOpen project in Xcode -> Select Target 'TiWidgetkit' -> General -> Frameworks and Libraries -> Select 'Do Not Embed' against Titaniumkit.xcframework.\r\n\r\nThis should fix your issue. Let me know if it do not. Thanks!\r\n\r\nIf you create new swift based module, Titaniumkit.xcframework is already 'Do Not Embed' in project.", "updateAuthor": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-09-30T22:49:11.000+0000", "updated": "2020-09-30T22:49:11.000+0000" }, { "id": "457106", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Vijay, thank you so much for shedding a light on this! I applied your fix and it still shows an error during deployment (actually with one of our app extensions, though it works when not including WidgetKit). Have you tested the combination with app extensions already? You can also use our project to test if you want! \r\n\r\n*EDIT*: Looking at the archive, it seems like the build appends a \"Frameworks/\" folder to the app extension when including the module, but doesn't if the module is not included.\r\n\r\n*EDIT 2*: Digging further into it, I noticed that the build seems to override the {{Always Embed Swift Standard Libraries}} for all app extensions (like home extension, share extension), causing one of them to embed the Swift Standard Libraries (and the others not, because Xcode is smart enough to only embed them once). So once that's fixed, the module is likely ready to go. Especially, because the module works, if I manually delete the \"Frameworks/\" directory from the app extension inside the archive. I added two screenshots to show how the build settings are changed during the build", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-10-01T07:36:58.000+0000", "updated": "2020-10-01T09:44:46.000+0000" }, { "id": "457121", "author": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~hknoechel] I had tried by including the module only. It was not mentioned in ticket for inclusion of extension. I'll try with extensions.", "updateAuthor": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-10-01T18:22:46.000+0000", "updated": "2020-10-01T18:22:46.000+0000" }, { "id": "457179", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Have you made any progress on that? We are happy to assist with sample code if necessary!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-10-07T07:17:09.000+0000", "updated": "2020-10-07T07:17:09.000+0000" }, { "id": "457189", "author": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hey [~hknoechel] , I couldn't try due to other high priority issues and leaves. If you can share a small test case (which may have 1 extension), will be great. ", "updateAuthor": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-10-07T17:46:41.000+0000", "updated": "2020-10-07T17:46:41.000+0000" }, { "id": "457200", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Sure thing! I attached you a light classic project with one extension to reproduce the case. Simply change the app ID's of the extension and containing app to an app of yours, make a production build ({{ti build -p ios -T dist-appstore}}) and see the validation error + the {{Always Embed Swift Standard Libraries}} setting being changed.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-10-08T06:38:40.000+0000", "updated": "2020-10-08T06:38:40.000+0000" }, { "id": "457220", "author": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thanks for sample app. I'll check it early next week and update you. ", "updateAuthor": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-10-08T22:07:22.000+0000", "updated": "2020-10-08T22:07:22.000+0000" }, { "id": "457243", "author": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~hknoechel] I tried to build the shared project. It is building absolutely fine. \r\nI created production build and validated it from Xcode Organizer's 'Validate App'. It is not giving me any error. \r\nThough _Always Embed Swift Standard Libraries_ setting is getting changed but it is not causing any issue.\r\n\r\nNote - I used sdk 9.2.1.GA and Xcode 12.0.1 .", "updateAuthor": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-10-13T19:07:49.000+0000", "updated": "2020-10-13T19:08:50.000+0000" }, { "id": "457462", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Thats very odd. Would you mind checking that on our app? Some config is changed by the build that causes this bug. Thank you Vijay! :-)\r\n\r\n*EDIT*: The \"validate\" step actually does not catch the error (!), only the upload\r\n\r\n*EDIT 2*: We can workaround the issue by injecting the following run phase:\r\n{code}\r\nEXTRA_DIR=\"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PlugIns/MyActionExtension.appex/Frameworks\"\r\n\r\nif [[ -d \"${EXTRA_DIR}\" ]]; then\r\n rm -rf \"${EXTRA_DIR}\"\r\nfi\r\n{code}\r\nIt seems like only action extensions are affected by it. Crazy.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-11-05T13:16:36.000+0000", "updated": "2020-11-05T14:50:54.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }