A very nonstandard method for linking to static libraries in iOS. How screwed is this approach?
A very nonstandard method for linking to static libraries in iOS. How screwed is this approach?
- Subject: A very nonstandard method for linking to static libraries in iOS. How screwed is this approach?
- From: Alex Zavatone <email@hidden>
- Date: Sun, 24 Apr 2016 16:15:52 -0400
After looking through about 5 project files' build settings, I found where the mysterious reference to a linked static libs whose path appeared to be from build using a unique derived data location.
The app I need to build needs to use Legacy Derived Data build location.
And this painfully illustrated the root of this 3rd party's source and its problems.
I have 1 project that is mine which makes my framework and a target app that loads the framework to validate that it can load and function.
This framework needs to be linked to from hin a non-ARC app that needs 5 external static lib files.
For the life of me, I could not find out how the source for this project links to the other projects to build the 5 .a files, or even since it didn't do that, how it linked to the libraries.
Since I have to build it (and since the build magically broke on Friday in Xcode 7.3) I had to (still have to) fix the ability to build the app and then relink my framework back in to it and determine how these external libs are linked in to the project.
Well, I've found out and it's nothing like what we do on a regular basis. I have the option of spending the rest of the day fixing everything or simply getting to work again - but I want to understand the nature of the problem and how to fix it.
But the other thing I want to know is, "just how insane is their approach to link to static libs?"
This project is linking to the static libs by adding the full path from my user folder to the built lib (using legacy build folders) for all 5 linked libs. These paths are supplied in the build setting of Other Linker Paths.
They look something like this:
Debug:
/Users/zav/px/iOSLibrarySVNPath/library/1.0.6/SomeProjectName/build/Debug-iphoneos/libSomeProjectName.a
/Users/zav/px/iOSLibrarySVNPath/library/1.0.6/SomeOtherProjectName/build/Release-iphoneos/libSomeOtherProjectName.a
/Users/zav/px/iOSLibrarySVNPath/library/1.0.6/AnotherProjectName/build/Debug-iphoneos/lib/libAnotherProjectName.a
/Users/zav/px/iOSLibrarySVNPath/library/1.0.6/YetAnotherProjectName/build/Debug-iphoneos/lib/YetAnotherProjectName.a
/Users/zav/px/iOSLibrarySVNPath/library/1.0.6/OneMoreProjectName/build/Release-iphoneos/lib/libOneMoreProjectName.a
Release:
…
Distribution:
–
Is this accepted practice or is this insane?
Yes, I see the Debug-iphoneos and Release-iphoneos folder paths hardcoded in. I am currently walking through these links and verifying that these files exist and trying to build from ground zero.
Just wondering if I should start dragging the projects into Xcode and link to their output binaries in the Build Phases like our lord of Build Process indented, or realize the nature of the issue, get it working and tackle this later.
But back to the original question, is this linking approach insane, standard for something 5 years ago, or what, exactly?
Thank you.
Alex Zavatone
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden