{ "id": "164402", "key": "TIMOB-24109", "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": { "id": "3", "description": "The problem is a duplicate of an existing issue.", "name": "Duplicate" }, "resolutiondate": "2017-04-25T12:05:35.000+0000", "created": "2016-11-07T06:06:25.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [], "versions": [ { "id": "18334", "name": "hyperloop 1.2.8", "archived": false, "released": true, "releaseDate": "2017-02-06" } ], "issuelinks": [ { "id": "54762", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "outwardIssue": { "id": "161279", "key": "TIMOB-23570", "fields": { "summary": "Hyperloop: iOS - Support use_frameworks flag in Cocoapods", "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": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-04-25T12:05:35.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": "13715", "name": "Hyperloop", "description": "Hyperloop project" } ], "description": "Customer is facing following problem, not able to use \"Kinvey\" as third party pod/framework.\r\n\r\nh6.Reproduce\r\n\r\n1. Create a default app. \r\n2. Add Podfile into project like following:\r\n{code}\r\ninstall! 'cocoapods', :integrate_targets => false\r\nplatform :ios, '10.0'\r\nuse_frameworks!\r\n\r\ntarget 'AlloyHyperloop' do\t\t\r\n pod 'Kinvey'\r\nend\r\n\r\npost_install do |installer|\r\n installer.pods_project.targets.each do |target|\r\n target.build_configurations.each do |config|\r\n config.build_settings['SWIFT_VERSION'] = '3.0'\r\n end\r\n end\r\nend\r\n{code}\r\n3. Add following code into app.js file\r\n{code}\r\nvar APPKEY = 'kid_r1ME5mgA';\r\nvar APPSECRET = '9bef50c0843d4860984b543ea2fde4ff';\r\n\r\n// ** This is regularly the username and password that is also used to log in to the app ** //\r\nvar USERNAME = 'cenciso';\r\nvar PASSWORD = 'cenciso';\r\n\r\ntry {\r\n\tvar Kin = require('Kinvey/Kinvey');\r\n\tvar Kinvey = new Kin();\r\n\tconsole.log('Kinvey: ' + JSON.stringify(Kinvey));\r\n\tKinvey.sharedClient.initialize({\r\n\t\t\tappKey: APPKEY,\r\n\t\t\tappSecret: APPSECRET\r\n\t});\r\n} catch (_error) {\r\n\tconsole.warn('- Error Loading Kinvey Module: ' + _error);\r\n}\r\n{code}\r\n4. Run the app on simulator or device (iOS 10)\r\n\r\nh6.Problem.\r\n\r\nApp will crash.\r\n\r\nh6.Note\r\n\r\nCustomer confirmed with Kinvey's development team, they are able to using it in native code, and which is working well.\r\n", "attachment": [ { "id": "60678", "filename": "AlloyHyperloop_2016-11-07-132627_Appc-MBP.crash", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2016-11-11T00:59:41.000+0000", "size": 3573, "mimeType": "application/octet-stream" } ], "flagged": false, "summary": "Not able to use Kinvey SDK as third party pod/framework", "creator": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "subtasks": [], "reporter": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "environment": "SDK 5.5.1.GA\r\nCLI 5.5.1\r\nHyperloop 1.2.8", "closedSprints": [ { "id": 883, "state": "closed", "name": "2017 Sprint 09 SDK", "startDate": "2017-04-23T21:46:54.309Z", "endDate": "2017-05-07T21:46:00.000Z", "completeDate": "2017-05-08T00:25:44.276Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "400489", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "I see a few issues with the example code, let me check the SDK and provide a full sample code that works. Please also attach full crash log, full environment e.g. Hyperloop version and SDK version.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-11-07T11:10:17.000+0000", "updated": "2016-11-07T11:11:55.000+0000" }, { "id": "401323", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "body": "Any update?", "updateAuthor": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2016-11-17T01:31:51.000+0000", "updated": "2016-11-17T01:31:51.000+0000" }, { "id": "402240", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Looking at the crash file, it seems to imply that KeychainAccess.framework is missing (which i assume is a 3rd party framework that came with the pod). So one possibility is to add this into appc.js. (assuming the framework is in a 'src' folder in project root)\r\n\r\n{code}\r\n\thyperloop: {\r\n\t\tios: {\r\n\t\t\txcodebuild: {\r\n\t\t\t\t/**\r\n\t\t\t\t * any flags available to be passed into the Xcode can be\r\n\t\t\t\t * included here to further customize the xcode build\r\n\t\t\t\t */\r\n\t\t\t\tflags: {\r\n\t\t\t\t\tFRAMEWORK_SEARCH_PATHS: '../../src'\r\n\t\t\t\t},\r\n\t\t\t\tframeworks: [\r\n\t\t\t\t\t'KeychainAccess'\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t/**\r\n\t\t\t * optionally, you can bring in third-party or first-party libraries,\r\n\t\t\t * source code, resources etc. by including them here. The 'key' is the\r\n\t\t\t * name of the package that will be used in the require (if code).\r\n\t\t\t * the values can either be an Array or String value to the directory\r\n\t\t\t * where the files are located\r\n\t\t\t */\r\n\t\t\tthirdparty: {\r\n\t\t\t\t'KeychainAccess': {\r\n\t\t\t\t\t// these can be an array or string\r\n\t\t\t\t\tsource: ['src'],\r\n\t\t\t\t\theader: 'src',\r\n\t\t\t\t\tresource: 'src'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n{code}\r\nHowever, this is guesswork. Would prefer to have more information please. ", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-11-30T06:07:19.000+0000", "updated": "2016-11-30T06:15:25.000+0000" }, { "id": "415230", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "body": "Any update?", "updateAuthor": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2017-03-23T01:31:28.000+0000", "updated": "2017-03-23T01:31:28.000+0000" }, { "id": "415982", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~sliang], the Kinvey SDK is written in Swift and therefore requires {{use_framework!}} directive. However, this is not supported by Hyperloop yet. The first iteration of this feature is planned for Hyperloop 2.1.0. Unfortunately i can't give an estimated release date for this at the moment, but they have several other options:\r\n\r\n* Kinvey has a SDK for Titanium at https://github.com/Kinvey/titanium-sdk which means it's not necessarily required to use Hyperloop to work with Kinvey\r\n* They can try using the 1.x version of the SDK, which is written in Objective-C, with {{pod 'KinveyKit'}}.\r\n\r\nLet me know if they have any other questions. If not i'll close this as a duplicate of TIMOB-23570.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-03-28T11:43:10.000+0000", "updated": "2017-03-28T11:43:10.000+0000" }, { "id": "415983", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "body": "Thanks a lot. Will inform customer. Will notice you once get reply.", "updateAuthor": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2017-03-28T11:52:41.000+0000", "updated": "2017-03-28T11:52:41.000+0000" }, { "id": "418000", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~sliang], just in case you want an update for the customer: The fix for this is currently under review and set to be included in Hyperloop 2.2.0, not in 2.1.0 as i mentioned in my previous comment. For further updates please check TIMOB-23570 for which I'll close this as a duplicate of.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-04-25T12:04:50.000+0000", "updated": "2017-04-25T12:04:50.000+0000" } ], "maxResults": 11, "total": 11, "startAt": 0 } } }