Interactive Ink

iink is not working with MyScript_ATK-ios-2

Hi,

We are already using iink framework for handwriting recognition in our app. Now we are trying to use ATK framework for editing gestures but getting following error.

duplicate symbol _OBJC_CLASS_$_COREKeychainWrapper in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREKeychainWrapper.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREKeychainWrapper.o)

duplicate symbol _OBJC_IVAR_$_COREKeychainWrapper._group in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREKeychainWrapper.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREKeychainWrapper.o)

duplicate symbol _OBJC_IVAR_$_COREKeychainWrapper._service in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREKeychainWrapper.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREKeychainWrapper.o)

duplicate symbol _OBJC_METACLASS_$_COREKeychainWrapper in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREKeychainWrapper.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREKeychainWrapper.o)

duplicate symbol _OBJC_CLASS_$_COREPersistanceUtils in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREPersistanceUtils.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREPersistanceUtils.o)

duplicate symbol _OBJC_IVAR_$_COREPersistanceUtils._keyChainWrapper in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREPersistanceUtils.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREPersistanceUtils.o)

duplicate symbol _OBJC_METACLASS_$_COREPersistanceUtils in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREPersistanceUtils.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREPersistanceUtils.o)

duplicate symbol _SERVICE_NAME in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREPersistanceUtils.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREPersistanceUtils.o)

duplicate symbol _OBJC_CLASS_$_COREHTTPRequest in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREHTTPRequest.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREHTTPRequest.o)

duplicate symbol _OBJC_METACLASS_$_COREHTTPRequest in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREHTTPRequest.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREHTTPRequest.o)

duplicate symbol _OBJC_CLASS_$_COREReachability in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREReachability.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREReachability.o)

duplicate symbol _OBJC_IVAR_$_COREReachability._alwaysReturnLocalWiFiStatus in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREReachability.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREReachability.o)

duplicate symbol _OBJC_IVAR_$_COREReachability._reachabilityRef in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREReachability.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREReachability.o)

duplicate symbol _OBJC_METACLASS_$_COREReachability in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREReachability.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREReachability.o)

duplicate symbol _kReachabilityChangedNotification in:

    Third Party/My Script/MyScriptInteractiveInk-Runtime/libiink.a(COREReachability.o)

    /Users/matra/Documents/MyScript_ATK-ios-2/Frameworks/ATKCore.framework/ATKCore(COREReachability.o)

ld: 15 duplicate symbols for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)



To integrate ATK framework we are using following link : http://doc.myscript.com/MyScriptATK/iOS/text/sltw.html




Thanks


Dear Matra,


thank you for contacting us.


If I understand well, you woukd like to integrate both the Single Line Text Widget and the iink SDK into the same application?


Currently, the Single Line Text Widget and the iink are using similar components, among these the ATKCore. The problem is that the ATK is rather old (2 years old) and therefore the ATKCore component version of ATK and iink are not aligned. You then understand this is the reason of the error message you are facing.


As ATK is no longer maintained, you then understand it is not possible to have both ATK and iink into the same application, this will result in the "duplicate symbol" error message you are currently facing.


The only solution would be that you only use the iink in your application (as we do not recommed to use the ATK is new applications, as no longer maintained).


Best regards,


Olivier



Thank you for quick reply Olivier.

Please let me know how I can use erase gesture through iink framework.

Thanks

Dear Matra,


I am not sure to understand your question, as by default the gestures are activated in the iink SDk (with the default samples, just write ink and erase it, this will work).


Best regards,


Olivier

Hey Olivier,

We are not using iink rendering view for writing . We have our own custom rendering view and from this view we are passing touch points to iink engine editor for recognition and we are able to get the recognised text.

Now what we need to do is when user try to erase some word (by scratching it) we should get some callback to know that this is erase gesture on based of touch points that we are passing to iink.

Dear Matra,


for such use-case, you can normally set the "processGestures" boolean to true when calling the pointerEvents function.


As long as you add your coordinates with the timestamp information and have a custom renderer it should normally work, i.e. when a gesture is done, it should be detected, and you can update your renderer accordingly.


Best regards,


Olivier

Hey Olivier,

To update my renderer I need some callback/delegate that will let me know the gesture type. Like one you have in ATK framework (- (void)singleLineWidget:(SLTWSingleLineWidget *)sender didDetectEraseGestureStart:(int)start end:(int)end)

In iink I am not able to find method for this.




Login or Signup to post a comment