How do you rebuild a Xcode framework from source? - objective-c

I am trying to alter the AWSIOSSDK framework so that it works for developing OSX apps, and I need to rebuild the binaries after I edit the files. But I don't know how to do this.
I have access to a src/ directory, which then has further directories of libraries, but there aren't any Makefiles or configure scripts anywhere in the folders.

Related

What is the naming convention for ASP.NET Core projects?

In ASP.Net Core the convention for projects seems to be to put the ASP.Net Core projects inside a src\ folder, and the test projects inside a test\ folder.
What other conventions are there, ie. where should a web (front-end only) project be located?
The honest answer to this is "it depends." The src and test folders at the root are a common structure seen in code repositories today.
Here are some common root folders and what they may contain:
test - Unit tests, UI tests, Integration tests, etc.
src - Source code projects
tools - Strong-name files and/or 3rd party tools that may be used to help tests or builds
build - Scripts to perform various builds on the project
docs - Documentation files for the project
How would you organize a web (front-end only) project inside an ASP.NET Core directory structure?
The only advice I can give without knowing your project, and the people interacting with it, is to keep it simple. I haven't found a need to add more root folders beyond what's seen above.
Keep in mind that there are certain folders that a default project template is going to use:
By default, Grunt is set up to look in the css, js, and lib folders under wwwroot for its bundling process.
Bower (also with the default template) will install packages into the lib folder under wwwroot.
MVC looks through the Views folder for view templates.

xbuild - where is the compiled app?

I have just started using xbuild to compile my C# solutions using Visual Stuido's .sln files. The outcome is two folders: bin and obj placed in the same localization as the .cs files of the project.
Both of them contain folders for Debug and Release versions, and both those versions appear to be the same application when I run them.
Is there any difference between those apps in bin and obj? And if there is, which one is the "complete app" I am "supposed to" run? Or am I missing some flag/option? Which files are necessary for the app to run (if I wanted to move just the executables and would like run them, which ones are necessary?)
I am using OSX (10.10.2), XBuild 12.0 and Mono 3.10.0.0 , if that is necessary.
Thanks in advance.
Long story short:
bin/Release/ are the files you should deploy.
bin/Debug/ are the files you should test in your developer machines.
Files in obj/ are useless, you can remove them.

Compile ansi c vendor library with objective-c

I'm using ObjC to build my app's ui, and my app depends on an ansi c library, I have the ansi c library's source code. How can I use Xcode to compile this app (For development, I can install the library into my Mac). But I want to ship my app to users without any external dependency, just like any other apps, user don't need to install the dependencies, so how can I accomplish this?
If you have static library then add the same to your Xcode project and compile application. During linking phase library is linked with Application binary and hence no separate installation required for the library.
In case library is dynamic library then check the installation path. If the library installation directory is outside application bundle then you need to create installer to install library to installation directory. On the other hand if installation directory is relative to #excutable path then you can keep the library inside your application bundle and no installation required. You can use copy file phase to copy library into your application bundle.Refer Apple documentation

Build Cocoa application Bundle with private dylib/framework

I use xcode 4 to build a cocoa application with a private dylib/framework.
In my development Mac, I put the dylib in the /usr/local/lib directory, and drag it into the project.
The app is compiled and runs perfect on my computer.
To distribute this app to the other Mac, I create a copy Files building phase, and say "copy that dylib to Frameworks directory".
The application is built successfully, and I indeed see the dylib is copied to the Frameworks directory in the app bundle.
The problem is when I run this app in another regular Mac, which does not have this dylib installed. I get an error saying:
dyld: Library not loaded: /usr/local/lib/mylib.dylib
The issue comes from the fact that you copy the framework into the app bundle, so it is available at a location like:
<you_app_path>/Contents/Frameworks
but you try to load it from /usr/local/lib where it is not available on you deployment machine. From Apple Framework Programming Guide:
To embed a framework in an application, there are several steps you must take:
You must configure the build phases of your application target to put the framework in the correct location.
You must configure the framework target’s installation directory, which tells the framework where it will live.
You must configure the application target so that it references the framework in its installation directory.
Now, you say that the build phase is ok; I assume also that you sent the application target build setting correctly. What is left is configuring the framework target’s installation directory.
If you did not build the framework yourself, you should be able to fix this by changing the framework install path so that it is defined relative to the loader (your app), to something like: #loader_path/../Frameworks/ (or #executable_path/../Frameworks). You can do that by means of install_name_tool.
If you are compiling on your own the private framework, you can define its install location in Xcode build settings.

Executable file in xcode

How to get the executable files from the xcode
If you're meaning to ask how to retrieve a compiled executable from a built Xcode project, you can find it in the build/Debug or build/Release folder in the project folder, depending on the build settings of the project.