Ensembles Idiomatic app not working - ios

Is the Ensembles example app, Idiomatic, supposed to work without having to configure it or link it to libraries like dropbox? When trying to start it I get this :
[...] Ensembles Basic Support/Ensembles 2.2/Source Code/Ensembles/Framework/Extensions/
CDEDropboxSyncCloudFileSystem.h:13:9: 'Dropbox/Dropbox.h' file not found
Does anyone know how to get it working? (I'm using Ensembles 2.2)

It seems when I was adding the DropboxSync framework, I accidentally included a full path, rather than a relative path, in the frameworks search path.
You can easily fix it by selecting the Idiomatic iOS target, going to Build Settings, locating the framework search path setting. Change it to $(SRCROOT)/../../Vendor/DropboxSyncSDK/iOS

Related

How to include libsignal-protocol-c in my Swift iOS app?

I would like to write something like import SignalProtocol at the top of one of my Swift files and then be able to call the C functions from libsignal-protocol-c.
libsignal-protocol-c's README says: "When integrating into actual applications, you should not need anything beyond CMake. Alternatively, you may integrate the code using a build system of your choice."
I think I'd like to use the Swift Package Manager to integrate libsignal-protocol-c into my Swift iOS app. Is there a way to automatically generate a manifest file, ie, Package.swift, and a module map, ie, a module.modulemap file, from libsignal-protocol-c's CMake files? Or if I need to create these files manually, what should they include? Otherwise, how would I do this with CMake?
How to import and use libsignal-protocol-c in an existing .xcodeProj? is a similar question but for Objective-C projects.
I'm not sure its an answer but I'm going to start using https://github.com/christophhagen/LibSignalProtocolSwift. Seems like a good start.

Basic Mechanics of iOS Frameworks and Xcode (and Swift)

I think I just must be stupid.
I'm having a lot trouble understanding very basic things concerning frameworks in Xcode/iOs/Swift. While I've certainly gotten some things to work, I've gotten more and more confused about what I'm actually doing. And the documentation on the web just confuses me more.
When I see discussions about how to import particular frameworks (e.g. https://github.com/danielgindi/Charts is the library I'm playing with, but I've seen this pattern repeated in other libraries) they seem to always tell me include the Xcode project file as a child project of my project, in addition to linking things as an embedded binary. This confuses me. Is it not possible to link an already compiled framework to my project without including all the source code of the project?
That is, can't I just take a library.framework file, and add it to my embedded libraries list and be done with it?
In the frameworks I've played with (again https://github.com/danielgindi/Charts is my primary example, but this is true in many others I've played with) I can't seem to use the framework without Carthage or CocoaPods. For me at this stage, that is just confusing... I accept that they are useful tools to automate a difficult process, but I'd really like to understand what that process actually is before I let a tool automate it for me. As I search the web I just seem to always be led back to these tools as being the correct way to do things.
So here are my questions.
If I find a framework library on the web... do I need its source code or can I somehow just link to a compiled version of the framework?
In my reading, it seems that libraries made with Swift are somehow second-class citizens because Swift is a newer thing. Is that still the case? (The articles I read about this seems to date from 2014-2015).
Is there are good place to understand how Apple expects me to add a framework to a project, without using CocoaPods or Carthage?
No need to add source code. Just add the framework to Target ->
General -> Linked Framework and Libraries -> Tap on + and select
your framework.
In my opinion, many new libraries are being written is Swift. So you won't be left behind for using swift.
Apple has documentation about adding frameworks to XCode. But I would suggest to use Cocoapods , as its easy to manage libraries.
Cheers :)

iOS - missing Platform Libraries

First of all, I've never worked on iOS, so this may or may not be a stupid question, I don't know :)
I have an iOS App, and I need to run it.
In the 'Project Navigator' I have a folder/package called 'Reuse and Platform Libraries'. Inside, I have another four folders but 3 of them seem like missing.
I am not sure if this is the case. I've tried googling their name but without results so I assume they are not some open source libraries.
Can someone clear this up for me? Do I need to install some XCode packages?
Thanks!
I suggest you search the folder of the project for those files, sometimes when copying a project the paths get screwed up because they were set as absolute paths and not relative paths.
If you can't find the files, it's most likely that the library is a private one used by the previous developers, and usually kept out of the project folder so they probably forgot to send it along. I'd suggest simply asking them to send the files over :).
There is also a slight chance they are not needed to run the file, in which case, just deleting them from the sidebar should make the project run.

Adding Header Search Path when trying to incorportate GPUImage in my xcode project?

I am trying to add the GPUImage framework/library according to this:
github.com/BradLarson/GPUImage
and I am stuck at the point of setting the Header Search Path. I tried setting a path but when I tried importing#import "GPUImage.h" I got an error saying it is not found. Maybe I put in the wrong path? I'm confused about what I should do because I have never used this before (very new to programming). Any help would be greatly appreciated.
First, if you're developing using Xcode 6, you might look at using the new framework support present in iOS 8 (and back to iOS 7, near as I can tell). The project has a true iOS framework that eliminates the need for setting paths to headers, like static libraries require. See the "Adding this as a framework (module) to your Mac or iOS project" section of the instructions for how to use this.
If you're targeting an older version of iOS and/or using an older version of Xcode, you'll need to set the Header Search Paths value in your build settings to be the path to where you installed GPUImage from where your application resides. For example, the sample applications in the examples/iOS directory use a path of
../../../framework
The .. elements in that tell it to step one directory back from the location of your application project. Since the examples reside in GPUImage/examples/iOS/[project], the above relative path leads to GPUImage/framework. If you placed your project and GPUImage in the same encompassing directory, you might use
../GPUImage/framework
instead.
In that path setting, make sure you set the option on the right to "recursive" as well.
Use the sample applications as templates, and compare how they are set up to your application to find areas where you might have deviated from the listed setup instructions. About the hardest part of those instructions is getting the relative path right.
I suggest you use cocoapods. It handles gracefully library dependencies and GPUImage is present there.
cocoapods.org
It is also fairly easy to install and use

xcode build settings for imported libraries (xcode 5)

I'm having a small issue with xcode (I'm assuming it's mostly due to being unfamiliar with xcode itself) and was hoping someone could lend me a hand.
I'm working with a group of people and we're using the GPUimage framework.
The problem is this:
For every person referencing GPUimage we get additional entries in the build settings for the xcode project.
For example build products path would be:
/Users/username/project/application_name/GPUImage-master/GPUimage.framework
I would rather it be:
/application_name/GPUImage-master/GPUimage.framework
The reason I want to fix this is because we need to package up our application and library together so that whoever wants to use it only needs to open the xcode project file to see what we've done (to mark it, school project).
Can anyone suggest what I should do or look for here?
Try adding the following to the beginning of the user path:
$(SRCROOT)/application_name/GPUImage-master/GPUimage.framework
That should instruct XCode to use the user path of whoever is using the library
Hope this helps!

Resources