-
Notifications
You must be signed in to change notification settings - Fork 129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compatibility with iOS version 9.0 #109
Comments
@ericwlange - On further investigation, I found that the same issue occurs with iOS 10.0 and 11.0 as well. |
@ericwlange - Furthermore, I noticed that for iOS Version 11.0 the error is similar but not exactly same. This is the error that I got - dyld: lazy symbol binding failed: Symbol not found: _JSObjectGetGlobalContext The file where this exception is received is Object.cpp, under LiquidCore Framework. Whereas in the case of iOS9.0/10.0 it was NodeInstance.cpp |
I have not tested with below iOS 10, so I am not sure if this will work on 9. Nobody has reported this before, so any additional information you can provide would be helpful. |
Okay. _dyld: Symbol not found: JSContextGroupAddMarkingConstraint xCode Version tested with- 10.1 and 10.2.1 |
This is possibly related to #108. I made liberal use of the private JavaScriptCore API, but it seems that is not allowed. I need to figure out how to achieve the same goals without the use of this API. |
@ericwlange thanks for the update. Thanks! |
I don't have a workaround because I haven't been able to reproduce it yet. As for the issue with using private APIs, I will only be able to say after the weekend. I fear that this is going to be a massive undertaking, but since I work a full time job, I can't look at it in any detail until the weekend. |
Can you please try the latest commit? pod 'LiquidCore', :git => 'https://github.com/LiquidPlayer/LiquidCore.git', :commit => '2f8d903' This should fix issue #108. I would like to know if it also solves your issue. |
Unfortunately, we are now getting error in some other file now. This is the error received- >>> TypeError: Function_func.call is not a function. (In 'Function_func.call(this, ...arguments)', 'Function_func.call' is undefined) iOS Version 10.0 |
On further investigation, it appears that something else is also broken with this commit. I ran my sample app on iPhone Simulator with iOS Version 12.0 I hit the button that calls some methods in JavaScript file and I can see the logs were printed from JavaScript side, but even then there is a crash after that. **The crash occurs at line# 422 of JSCPrivate.cpp file. ** Also, on the console- there is no error at all, we just end up at :"lldb" let me know if you need more information regarding this. Thanks for all the efforts, Eric! |
Thanks for reporting. I can chase down that second bug; it should be simple. Can you give the full stack information on the first one? |
Can you actually give me the full call stack from both of these issues? |
Actually, nevermind on the |
For the 1st one here are further details of the thread stack - The error that I got in console is - >>> TypeError: Function_func.call is not a function. (In 'Function_func.call(this, ...arguments)', 'Function_func.call' is undefined) There is nothing more in the console. Please let me know if you need anything more. Thanks! |
On the m_collection_thread crash- I can confirm its working fine now. |
Hi @ericwlange ! Any update on this please ? Thanks! |
I've been struggling with this all day. I "fix" (read: I just change the way it is doing it -- there should be nothing wrong with my original code) one thing and then something else breaks. At the moment, iOS 10.0 does not appear to be supported. I have not downloaded enough simulator versions to find out where it stops breaking. Have you? |
The original issue that I posted - I have tested a same app with simulators running 9.0, 10.0 , 11.0 and 12.0. Out of these four versions I found that the code broke with all except for version 12.0. So therefore I have tested with maximum 11.0 and not 11.1/2/3 The branch you gave with the fix( commit => '2f8d903'), I have only tried on 10.0 |
I have tried both 10.0 and 10.3.1. They both fail because JavaScriptCore doesn't like when node does something like this: class FastBuffer extends Uint8Array {
constructor(arg1, arg2, arg3) {
super(arg1, arg2, arg3);
}
}
FastBuffer.prototype.constructor = Buffer; Calling the super constructor bails with the error:
This works fine on the bundled version of V8 and also on iOS 12+. I am in the process of downloading the 11.0 simulator to try and pinpoint where this starts working. But I will not try to go much further to solve the problem. I don't want to modify the node bootstrap code. This gets too difficult to maintain. |
Ok, I have tried my newer version with 11.0 and it works. I will check in the mods and change the minimum support from 10.0 to 11.0. It is not at far back as we'd like, but it is the best we can do with version 8.9 of node. |
Could you provide the latest commit id for which 11.0 is working ? Thanks! |
Older JSC version has issues with JSObjectSetPrototype in some places
Ok, please try |
@ericwlange Seems like somethings not right with the commit. I tried installing, and at first it takes alot of time. Then after a while installation fails with this error- [!] Error installing LiquidCore Cloning into '/var/folders/dz/gvkzfsxx6r55swyy7364h7w80000gp/T/d20190613-72089-1maeyvm'... |
Okay, on third attempt, it worked and installed the library correctly. Please ignore the last comment. |
Yeah it sounds like a github glitch. |
@ericwlange The library seems compatible with iOS 11.0 now. I have tried it a few times, and haven't seen a crash with the commit ID you gave. |
@umangkathuria Glad to hear it. I am trying to figure out what is happening with #113 (which I am having trouble reproducing), but then I will push out an 0.6.2 release. |
Thanks for all the effort, Eric! |
This has been pushed in 0.6.2 today. |
Hi Eric!
I am getting this error while running an application using LiquidCore version 0.6.1.
dyld: lazy symbol binding failed: Symbol not found: _JSContextGroupAddMarkingConstraint
Referenced from: / /* path to app*/ /Frameworks/LiquidCore.framework/LiquidCore (which was built for iOS 10.0)
Expected in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 9.0.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/JavaScriptCore.framework/JavaScriptCore
To reproduce-
Run the code with iOS Deployment Target 9.0
Simulator used- iOS 6S with OS version 9.0
Here's the screenshot of the file where we reach this exception.
I wanted to confirm if the LiquidCore framework can be used with iOS 10 and above only or if this is an actual bug ? If it is, is there any work around or fix to this problem?
Thank you!
The text was updated successfully, but these errors were encountered: