Closed chris-praxis closed 4 years ago
My workaround was to make a new script that is nsld.sh without the linking part and append it to the pre-build step. According to the docs this will not work correctly for Swift, but I'm using Objective C. tools.zip
I have confirmed that fix #1204 works for me.
Environment Provide version numbers for the following components (information can be retrieved by running
tns info
in your project folder or by inspecting thepackage.json
of the project):Describe the bug I added an Objective C class in "app/App_Resources/iOS/src" with a modulemap and I was able to instantiate it and call methods on it from a Vue component. But when I added methods, they did not show up in JS. I realized that the metadata in ""platforms/ios/Build/Debug-iphoneos" was not being updated, and no matter what I've tried I cannot get it to updated after the initial build for the app. Removing and re-adding the iOS platform does not help and results in missing metadata:
ld: can't open -sectcreate file "metadata-arm64.bin"
.I found the documentation regarding "nsld.h" here "https://docs.nativescript.org/troubleshooting" and I determined that it is never being run. That is, the linker setting which assigns LD to this script does not work. Possibly an Xcode change?
To Reproduce
So the metadata files are generally not being generated, and if they are, then they are not updated on subsequent builds after code has been changed.
Expected behavior Metadata should be kept up-to-date with source as part of the build process.
Sample project See attachment.
Additional context My guess is that an Xcode/clang update broke the linker override (LD -> nsld.sh).
bug7762.zip