Prohibit downloading Dependencies of CocoaPod - ios

When I link a CocoaPod in a Podfile that includes further Cocopods via dependencies: How can I disable the installation of these dependencies (via the Podfile)?
Background scenario: GCDWebserver includes optional logging with CocoaLumberjack. CocoaLumberjack is nor required and only used if present in the project. Unfortunately the GCDWebserver 3.3 and newer links to CocoaLumberjack as dependency. But I don't want to include it because I'm using another logging framework.

Unfortunately the GCDWebserver 3.3 and newer links to CocoaLumberjack as dependency
This is not the case anymore since version 3.4.1 because it created problems like yours.

Related

What are the differences between Framework and Package in Swift?

What are the differences between Framework and Package in Swift?
I knew about differences of swift embeddable components like,
Static Framework
Static Library
Dynamic Framework
Dynamic Library
But I do not know what is the purpose of the Swift Package?
When should I use Swift package?
In Swift, packages are reusable components of Swift, Objective-C, Objective-C++, C, or C++ code that developers can use in their projects. This is similar to packages in npm.
Packages are primarily distributed through Cocoa Pods, Swift Package Manager, and Carthage.
Packages can contain Frameworks and Libraries and can use other packages as dependencies.
You would use a package in Swift when you want to re-use a piece of code in different projects as you would an npm package in Javascript projects. An example would be NetworkUtils a package distributed on Cocoa Pods that provides networking support.
Packages are just a way to distribute code, like a framework or a library. The benefit comes from how easy it is to manage them. You can manage a list of the dependencies you want to include and the package manager will handle downloading and installing the code into your project for you. It also makes it easier to choose specific versions of packages to use in your project.
For example, if I want to include NetworkUtils in my project, I would just edit a Podfile (a Cocoa Pods file for managing dependencies) and would just add a line: pod 'NetworkUtils' and then run the pod install command in terminal and it would load the newest version of the package into my project.

Why ios plugins are not included to build?

Just trying to build ios version of app but plugins was not ... included? Android version runs fine and in Plugins list are also listed as installed.
Tried different projects, different configs, different syntaxes of config.xml... nothing works. Any idea?
The latest version of org.apache.cordova.console is cordova-plugin-console.
Similary for org.apache.cordova.device it is cordova-plugin-device and so on.
Check your plugin list by cordova plugin list
Remove iOS platform by cordova platform remove ios, add it again and build it.
It should work. Good luck.

NuGet - dependency installed but not found

I have a problem with the NuGet package manager. I published my library (a type provider, but I don't think this matters) and then testet it, but it fails to find a dependency. The complete error message is (full namespace/name ommitted for brevity):
The type provider 'TypeProviderImplementation....' reported an error:
Could not load file or assembly 'dotNetRDF', Version=1.0.3.0, Culture=neutral, PublicKeyToken=...' or one of its dependencies.
The thing is that when installing the library, it looks like the dependencies are installed correctly. The correct libraries are downloaded and there is no error showing up.
In an attempt to solve the problem, I specified the exact version in the .nuspec file, but this didn't change anything.
...
Installing dotNetRDF via NuGet and then manually referencing my precompiled DLL (without going through NuGet) seems to work fine.
So I'm basically out of ideas on how to solve or even debug the problem. I'm thankful for any pointers.
Addign more information about .NET version numbers as my comment below is quite hard to read:
I checked framework versions as suggested. I did this via looking at the FrameworkDisplayName in the object browser. Basically, my library was using 4.5 and dotNetRDF was using 4.0.
I switched to .NET 4.0, but nothing changed.
My library = ".NET Framework 4"
dotNetRDF = ".NET Framework 4"
HtmlAgilityPack = ".NET Framework 4.5"
Newtonsoft.Json = ".NET Framework 4.5"
VDS.Common = ".NET Framework 4 Client Profile"
My dependency is dotNetRDF, the remaining ones are dependencies of dotNetRDF.
Latest NuSpec file can be found here. I create the package via the command nuget pack LITEQ.fsproj -Prop Configuration=Release.
The package id is LITEQ.RDF.
Some additional information:
The library is a F# project. I just tested what happens if I create a console project and install the library via NuGet and then send the references to the F# Interactive Console. It actually works in this case.
So it feels like there is some problem with the project configuration after installing the library via NuGet.
To reproduce, the error, download the library, open up the UniKo.West.Liteq namespace and for example use the NpqlTypeProvider:
open Uniko.West.Liteq
type A = NpqlRdfProvider< #"">
Certainly for me I can't see any obvious problems, when I install your package into an empty console project I don't have any issues and I can write a trivial example that uses the dotNetRDF APIs just fine. If you can produce a minimal example project into which installing the packages creates an issue then that would be very helpful.
Your Issue
However the dependencies you state for your project look wrong, you have .Net 4.0 for your project and some dependencies but .Net 4.5 for others which will not work. Note that when you downgrade a projects target framework NuGet does not cope nicely with that, it is best to completely uninstall and reinstall NuGet packages any time you change the target framework version. It is perfectly fine for a newer version of the framework to rely on dependencies that target older versions, so your .Net 4.5 project can happily depend on the .Net 4.0 version of dotNetRDF. However the reverse is not true which may be the cause of your problems.
You can sometimes tell if this is the case because VS may highlight bad dependencies under References in the solution explorer with little warning icons (sadly it doesn't always do this). Even if this is not the case you should see output like the following in the Output Window when you try and build if you have incompatible dependencies and this may also yield compile errors about missing namespaces:
C:\Program Files
(x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5):
warning MSB3274: The primary reference "HtmlAgilityPack" could not be
resolved because it was built against the ".NETFramework,Version=v4.5"
framework. This is a higher version than the currently targeted
framework ".NETFramework,Version=v4.0".
So I would strongly suggest that you uninstall all packages via NuGet and reinstall them whenever you change the target .Net framework of your project.
Other Issues
In terms of other possible issues you are using dotNetRDF 1.0.3 which is not the latest version, versions prior to 1.0.5 have a known issue related to interactions with the versioning and framework profiles of Json.Net. If a project you are installing into also has dependencies on Json.Net you may run into version conflict issues. See CORE-405: Resolve Issues with Json.Net dependency for some discussion on this.
I would suggest that you also upgrade your dependency to the latest dotNetRDF release which is 1.0.6.3421 at the time of writing this answer and see if that resolves your problem.
Edit - NuGet Package Versions
NuGet packages versions do not have to correspond to the assembly version, as it happens 1.0.6.3421 does have an assembly version of 1.0.3.0. That was actually not our intention but a flaw in our build process but that isn't really relevant here.
What it looks like is that your library is compiled against a different version of dotNetRDF than the one NuGet is installing for you. However without seeing the source of your package it is impossible to debug further.
What if neither solution works?
If neither of these things resolves your problem then you are going to need to provide a minimal project that reproduces the problem.
A temporary solution (or more of a hack) is to not rely on dependencies, but to directly put the DLLs into the NuGet package. When I do this, the library works fine. The NuSpec file in this case looks like this (excerpt):
<package>
<metadata>
...
</metadata>
<files>
<file src="bin\Release\dotNetRDF.dll" target="lib/net40" />
<file src="bin\Release\HtmlAgilityPack.dll" target="lib/net40" />
<file src="bin\Release\HtmlAgilityPack.pdb" target="lib/net40" />
<file src="bin\Release\HtmlAgilityPack.xml" target="lib/net40" />
...
</files>
</package>
But obviously, this isn't a good solution.

xcode maven plugin install prebuilt

We are evaluating xcode-maven-plugin from http://sap-production.github.io/xcode-maven-plugin/site/ for handling iOS library dependencies using maven. It looks really promising but we are using some prebuilt third party libs we don't have the source code from that we would like to also install in maven and resolve as maven dependencies but we don't know how to achieve that with the plugin.
We have already used the maven-android-plugin for Android to upload third party binaries and we manage to do that playing with the headerFilesDirectives and nativeLibrariesOutputDirectory parameters but we haven't found anything similar for the xcode plugin.
Does anyone know if it is possible to install prebuilt iOS libraries with the latest(1.14.0) xcode-maven-plugin version?.
We are new to Maven so maybe we are missing something obvious here.
Why do not you use a CocoaPods instead? It's a dependency manager for Objective-C projects. It's like iOS equivalent of Maven.

IntelliJ 11 - Grails SDK is not configured

I have recently upgraded my IntelliJ 10 to the latest 11.0.1 version. I am writing grails app and until I was using the older version of IntelliJ everything was fine, however 11 doesn't allow me to successfully add Grails SDK (2.0.0) - I was trying to add the framework support, this however doesn't seem to be persisted (after adding Groovy and then choosing Grails - nothing happens). I have tried to follow those steps as well: IntelliJ IDEA 9.0 - unable to select project SDK for Grails application
I would be grateful if someone would be able to point me how to configure Grails SDK - or what could be wrong in my configuration.
Thanks,
This is exactly the way that I have my global library defined and still I was having exactly the same issue.
I followed OverZealous advice and created a new Grails project named exactly the same as the original one and boom everything is fine now! Thanks for help.
You don't need both Groovy and Grails for Grails project, just use Grails SDK. When creating a new Grails project there is an option to add new SDK, select the home path of your Grails installation and it will be configured automatically as a Global Library and this library will be added as a dependency to your module.
Grails library configuration contains all the jars from GRAILS_HOME\dist and GRAILS_HOME\lib, plus all the jars from the src directory.
In other words, it's not configured as a framework, it's just a library with all the jars from Grails distribution added to the module dependencies.
Each time I restart IntelliJ, version 13.1.2, it loses the SDK configuration. If I right-click on the project and "Add Framework Support" I can choose the SDK that is already configured and it will begin functioning properly. When it loses this setting, it won't allow me to compile or launch the app with grails. I reject the ideas to recreate the project, (been there/done that) as I have many dependent modules I have to verify and I lose all my run configurations that I've setup manually.
I'm posting the "Add framework support" step here so it might help someone else; hopefully a more permanent solution for you, but its temporary in my situation

Resources