[TIMOB-24499] Hyperloop: iOS - Unable to use a third-party framework with Hyperloop
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Critical |
Status | Closed |
Resolution | Not Our Bug |
Resolution Date | 2019-01-15T18:21:38.000+0000 |
Affected Version/s | n/a |
Fix Version/s | n/a |
Components | Hyperloop |
Labels | n/a |
Reporter | rogerio.coelho |
Assignee | Jan Vennemann |
Created | 2017-01-30T21:26:59.000+0000 |
Updated | 2019-01-15T18:21:38.000+0000 |
Description
Hi there,
I'm trying to use Hyperloop to integrate a third-party framework to the app, but it is not working.
The framework is a native Geolocation APIs from Android and iOS and send that data back to our systems , so our goal would be create a very simple app with our SDK integrated to Titanium to send the Geolocation data and register for push notifications to our platform, I'm new to the current Titanium version, so what would you recommend us to do to?
I'm creating a sample project, a blank standard "hello world" project and follow the instructions to Hyperloop. The framework is developed on OBJC for iOS and for Android API 19
In this case I tried first the iOS one and it did fail on iMac running Sierra, latest xCode, latest Appcelerator and iOS SDK, executed the wizards for Android SDK/Simulators but it always gives me this error:
[INFO] : [Hyperloop] generating class HandsMDM/HandsMDM
[WARN] : [Hyperloop] Couldn't resolve typedef: ObjectType
[WARN] : [Hyperloop] Not sure how to handle: name= firstObject type= typedef value= ObjectType
[WARN] : [Hyperloop] Couldn't resolve typedef: ObjectType
[WARN] : [Hyperloop] Not sure how to handle: name= lastObject type= typedef value= ObjectType
Also I attached a screenshot of the simulator error.
This is our apps.js on the project root
module.exports = {
hyperloop: {
ios: {
xcodebuild: {
flags: {
FRAMEWORK_SEARCH_PATHS: '../../src'
},
frameworks: [
'HandsMDM'
]
},
thirdparty: {
'HandsMDM': {
source: ['src'],
header: 'src',
resource: 'src'
}
}
}
}
};
and our index.js
var HandsMDM = require('HandsMDM/HandsMDM');
HandsMDM.sharedManager();
HandsMDM.debugMode = true;
HandsMDM.track();
Here the apps info:
Appcelerator Command-Line Interface, version 6.1.0
Copyright (c) 2014-2017, Appcelerator, Inc. All Rights Reserved.
Operating System
Name = Mac OS X
Version = 10.11.6
Architecture = 64bit
# CPUs = 4
Memory = 12.0GB
Node.js
Node.js Version = 4.6.0
npm Version = 2.15.9
Appcelerator CLI
Installer = 4.2.8
Core Package = 6.1.0
Titanium CLI
CLI Version = 5.0.11
node-appc Version = 0.2.39
Titanium SDKs
6.0.1.GA
Version = 6.0.1
Install Location = /Users/predicta/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA
Platforms = iphone, android, mobileweb
git Hash = 265db0d
git Timestamp = 12/20/2016 00:55
node-appc Version = 0.2.39
Mac OS X
Command Line Tools = installed
Intel® Hardware Accelerated Execution Manager (HAXM)
Installed = yes
Memory Limit = 544 MB
Java Development Kit
Version = 1.7.0_80
Java Home = /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
Genymotion
Path = not found
Genymotion Executable = not found
Genymotion Player = not found
Home = not found
VirtualBox
Executable = not found
Version = unknown
Android SDK
Android Executable = /Users/predicta/Library/android-sdk-macosx/tools/android
ADB Executable = /Users/predicta/Library/android-sdk-macosx/platform-tools/adb
SDK Path = /Users/predicta/Library/android-sdk-macosx
Android NDK
NDK Path = not found
NDK Version = not found
Android Platforms
1) android-23
Name = Android 6.0
API Level = 23
Revision = 1
Skins = HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800, WVGA854, WXGA720, WXGA800, WXGA800-7in, AndroidWearRound, AndroidWearRound360x360, AndroidWearRoun
d400x400, AndroidWearRound480x480, AndroidWearRoundChin320x290, AndroidWearRoundChin320x300, AndroidWearRoundChin360x325, AndroidWearRoundChin360x326, AndroidWearRoundChin360x330
, AndroidWearSquare, AndroidWearSquare240x240, AndroidWearSquare320x320
ABIs = armeabi-v7a, x86, x86_64
Path = /Users/predicta/Library/android-sdk-macosx/platforms/android-23
Android Add-Ons
None
Android Emulators
titanium_1_WVGA800
Path = /Users/predicta/.android/avd/titanium_1_WVGA800.avd
SDK Version = Android 6.0 (API level 23)
ABI = armeabi-v7a
Skin = wvga800
SD Card = /Users/predicta/.android/avd/titanium_1_WVGA800.avd/sdcard.img
Google APIs = no
Genymotion Emulators
None
Connected Android Devices
None
Xcode
8.2.1 (build 8C1002) - Xcode default
Install Location = /Applications/Xcode.app/Contents/Developer
iOS SDKs = 10.2
iOS Simulators = 10.2
Watch SDKs = 3.1
Watch Simulators = 3.1
Supported by TiSDK 6.0.1.GA = yes
EULA Accepted = yes
Teams = none
iOS Keychains
login.keychain = /Users/predicta/Library/Keychains/login.keychain
System.keychain = /Library/Keychains/System.keychain
iOS Development Certificates
None
iOS Distribution Certificates
None
Apple WWDR Certificate
Apple WWDR = installed
Development iOS Provisioning Profiles
None
Distribution iOS Provisioning Profiles
None
Ad Hoc iOS Provisioning Profiles
None
iOS Simulators
10.2
iPad Retina (ipad)
UDID = 5D4E3756-B0EC-45D1-A244-30D1E5999D04
Supports Watch Apps = no
iPad Air (ipad)
UDID = CA27D66B-9C43-4CDF-95FC-5ABE672D61DE
Supports Watch Apps = no
iPad Air 2 (ipad)
UDID = 283AB17C-4F91-4E7D-8823-B24CC0847CA3
Supports Watch Apps = no
iPad Pro (9.7 inch) (iPad Pro (9.7-inch)) (ipad)
UDID = 93182EA8-A62E-4A63-A94A-A8F954983F78
Supports Watch Apps = no
iPad Pro (12.9 inch) (iPad Pro (12.9-inch)) (ipad)
UDID = 3172C9DE-5A01-44A3-A8AD-923A89FA3831
Supports Watch Apps = no
iPhone 5 (iphone)
UDID = F2DA8731-20C9-42C3-BD62-FCF18426F03C
Supports Watch Apps = yes
iPhone 5s (iphone)
UDID = 43CC07F7-6F0E-4524-B360-EF4A246FE252
Supports Watch Apps = yes
iPhone 6 Plus (iphone)
UDID = 0C619B45-699C-4918-B8A1-44E1ACCCE0C9
Supports Watch Apps = yes
iPhone 6 (iphone)
UDID = B42F2AB7-24DA-44EF-A638-DC0A38DCD2A8
Supports Watch Apps = yes
iPhone 6s (iphone)
UDID = 224B5EB3-8D72-4EE0-A27D-B9251BCB3ABE
Supports Watch Apps = yes
iPhone 6s Plus (iphone)
UDID = 2DEFEE14-5FF5-46F0-A192-CFCD93D8860E
Supports Watch Apps = yes
iPhone SE (iphone)
UDID = E98172E3-E8B6-41C6-962D-2BD32F058BE9
Supports Watch Apps = yes
iPhone 7 (iphone)
UDID = EC1D83EB-764B-4664-8A57-8529DCD9F668
Supports Watch Apps = yes
iPhone 7 Plus (iphone)
UDID = B4DB4DE3-4A0A-487B-B90D-E3B75DADF418
Supports Watch Apps = yes
WatchOS Simulators
3.1
Apple Watch - 38mm (watch)
UDID = 67D591E4-7D41-4F38-8576-538600D99121
Apple Watch - 42mm (watch)
UDID = 4026C913-5F58-4A12-9C94-1E1C5DC00A69
Apple Watch Series 2 - 38mm (watch)
UDID = D8D58DAC-4D7E-4791-8786-7DF3FC0EF7F6
Apple Watch Series 2 - 42mm (watch)
UDID = DF62B50E-9DCC-4576-B02A-B4AA0D1BD7DD
Connected iOS Devices
None
Attachments
File | Date | Size |
---|---|---|
Captura de Tela 2017-01-30 às 5.02.21 PM.png | 2017-01-30T21:24:57.000+0000 | 89665 |
HandsMDM.framework_for_development.tar.gz | 2017-03-16T19:15:13.000+0000 | 155821 |
HandsMDM.framework_for_release.tar.gz | 2017-03-16T19:15:13.000+0000 | 76735 |
Hey [~rogerio.coelho], can you provide the framework for a closer look?
@Hans Knöchel . Thanks for getting back. I attached it to the ticket. There is a plist file that need to be imported to the XCode project with the basic configuration for the framework, if it is not found or invalid, the framework does not crash, it starts and simply do not track the info we need, so on normal conditions, this should work. I can confirm the framework is working fine on a native OBJC project
@Hans Knöchel I forgot to mention that this framework is for simulators only, if need I can send the release one, they are the same, we just don't make a fat binary for the frameworks
Hello, [~rogerio.coelho], Can you follow up your current status? Also, send a release version of the framework.
The latest version of the framework. We have built one for release and other for the simulator
@sdarda Hello Sharif AbuDarda. We're still waiting for your feedback on this issue. Currently we are unable to go forward on implement Appcelerator until we have this issue fixed. The latest version is attached, we've built the release and simulator separately, so there is no need for a build script to strip the simulator binares.
[~sdarda], i just tried their framework with TiSDK 6.0.3.GA and Hyperloop 2.0.1 and it works for me after some small changes. First they need to adjust the runpath search paths via a xcode build flags option in appc.js. Just place it under
FRAMEWORK_SEARCH_PATHS
:After that they need to change their code slightly so it looks something like this:
I still get an exception from their Framework that the
publisherId
key is missing but i guess that's because some initialization is missing from that code example.Closing ticket due to inactivity. If the issue still persists please reopen.