Open bodybreaker opened 2 years ago
Wowzers, that is a big call stack. I think you're right that the issue is with protobuf code generation. I know that iOS doesn't allow allocated memory to be marked executable, so maybe that's why it fails to prepare a serializer for the version.
How are you building the opus codec for iOS?
Thank you for your comment!
I build opus on macOS with xcode 12.4, opus 1.3 maybe I can share codec!
Do you think is there easy way to solve it?? Like disable code generation of protobuf..
Thank you again!
Doing some research, it seems that the issue is that reflection isn't supported on ios, and that's what is used in your call stack. I'm certain that this is solvable, but it won't be easy. I think you're best bet is to get protobuf-unity working in a separate project on iOS, and confirm that it can properly serialize a mumbleproto.Version. It may be failing due to something in your build configuration, or because we need a new protobuf dll for iOS.
Also, adding opus for iOS has been on this project's TODO list for a long time, if you can get this working please consider making a PR and adding the compiled opus library for iOS, would be helpful for others.
Thanks a lot for your help! okay I will try protobuf-unity with ios, and If i have a luck with that I will make a PR!
Hava a good day BananaHemic!
Doing some research, it seems that the issue is that reflection isn't supported on ios, and that's what is used in your call stack. I'm certain that this is solvable, but it won't be easy. I think you're best bet is to get protobuf-unity working in a separate project on iOS, and confirm that it can properly serialize a mumbleproto.Version. It may be failing due to something in your build configuration, or because we need a new protobuf dll for iOS.
Also, adding opus for iOS has been on this project's TODO list for a long time, if you can get this working please consider making a PR and adding the compiled opus library for iOS, would be helpful for others.
I just make PR with ios opus codec.
But i have no luck with solve
system.reflection.emit
and I had to add assets/link.xml
<linker>
<assembly fullname="Google.Protobuf" preserve="all"/>
<assembly fullname="System.Reflection" preserve="all"/>
<assembly fullname="System.Collections.Immutable" preserve="all"/>
<assembly fullname="System.Memory" preserve="all"/>
<assembly fullname="System.Buffers" preserve="all"/>
<assembly fullname="System.Runtime.CompilerServices.Unsafe" preserve="all"/>
<assembly fullname="System" preserve="all" />
<assembly fullname="protobuf-net" preserve="all" />
</linker>
because of error with code strip in unity
Did adding the link.xml file solve the problem?
Thanks for the PR! I'll merge it once we get your system running on iOS
No adding link.xml for other error (method not found exception)
I tried protobuf-unity on mumble unity, but it has some compile error, I thought it can be changed with your protobuf-net.dll.. Im new at unity,C# I couldn't handle it 😭😭
Well I'm here to help you out 😄
Can you first get protobuf-unity compiling in a brand new project? Once that's running on iOS, then we can bring in the mumble files and see what happens.
Thank you for your great job!
Im using Mumble-Unity on iOS, Android. Android works great but iOS I had to build opus codec . After that I got this error, I think it has problem with Protobuf.(on google, people say it's related with protobuf code generation) I'm new at protobuf so any help would be grateful I attached my error log