Using Old version of a framework x inside a pod y while using latest version of framework x for main project - cocoapods

I have a local pod that has to use an older version of the OpenSSL framework. My main project uses this local pod and a newer version of the OpenSSL framework. This creates ambiguous use inside code. My question is if it is possible to make this older version reachable only from my local pod, but not from other pods or the main project file?

Only by renaming all of the symbols in one of them. See https://github.com/google/boringssl for an example of this.

Related

Use Carthage with Swift 2.3

I want to add this to my project:
github "hyperoslo/ImagePicker"
I am currently using swift 2.3, however when I build this using Carthage, it builds it in Swift 3, which obviously isn't compatible with my project.
Is there a way to use Carthage to build this dependency in Swift 2.3?
Not directly, but if you look in the build logs you will see an export:
export TOOLCHAINS=com.apple.dt.toolchain.Swift_2_3
If you execute the above in your terminal before calling carthage Swift 2.3 will be used.

Legacy mode Cocoapods

Is there a legacy mode for Cocoapods that allows a user to use a version of Cocoapods as if it was an older one? Eg use 1.0.0 as if it was 0.39 via a command line argument to avoid downloading legacy versions.
You will need the version to be installed. However, there is nothing wrong with having multiple versions installed. You can also delete them if you no longer need a specific version.
Once installed, run the version you want with this:
pod _0.39.0_ YourCommandHere
Change the version number as needed.

Support for Kanna framework in Swift 3.0?

After migrating my project from Swift 2.2 to 3.0 I get an error message on the Kanna framework, saying that
Module file was created by an older version of the compiler. Rebuild Kanna and try again
Have I done anything wrong or does the Kanna framework not work under Swift 3.0?
To use Kanna library (CocoaPods) you need add it to your Podfile:
use_frameworks!
pod 'Kanna', git: 'https://github.com/tid-kijyun/Kanna.git', branch: 'swift3.0'
then in terminal:
rm Podfile.lock (if exist)
pod init
pod update
pod install
Take tutorial from here
There is a now a working version for Swift 3.0, using carthage. Everything is described here:
Kanna github

Compiler update for Carthage project

I got a project, which is built with Carthage and uses swift2.0. I am trying to run the project, but encountered this issue:
Module file was created by a newer version of the compiler.
After struggling for about 1 hour, I found that this error occurs when I trying to build Carthage project in newer version of Xcode. My version is 7.2 and the project was built using a newer compiler version.
How can I build this project in Xcode 7.2? I don't want revert my xcode version.
Any help would be appreciated.
After upgrading my xcode version to 7.3, the problem has fixed.

Using private frameworks for QT in xcode 4.3

The Mac QT Installer puts its shared libraries under /Library/Frameworks/QtXXX.Framework.
I'm building a QT application using a qmake-generated xcode project. I'd like to add these frameworks as private framewords inside my app bundle for easy deployment.
I've tried various options for doing this but I don't seem to be able to make it work. What I did -
change the Qt framework files in /Library/Frameworks/ using install_name_tool as described here
copy the these framework bundles manually to inside the app bundle
recompiling the bundle.
When I change the name of the original framework so it would appear that it's not there, the app crashes and says that it doesn't find the needed framework. What am I doing wrong?
Using xcode 4.3 on OSX 10.7.3
Some options to deploy a Qt application on Mac:
Qt comes with the macdeployqt tool, to bundle Qt with the built app bundle. The tool is a bit limited though and might or might not do what you want.
CMake comes with DeployQt4, which can also be used for deployment only, in case one doesn't want to use cmake for the build as well.
One can write his own script using install_name_tool as described in your link. If it doesn't work, check with otool -L if you replaced all absolute paths in the executable and bundled libraries. You will have to fix the paths for the bundled libraries, too! (recursively, so to say).
The latest released cmake version (2.8.7) doesn't support XCode 4.3 properly though: Since Xcode 4.3, files previously being installed to /Developer are now in /Applications/Xcode.app/Contents/Developer. cmake still expects them in /Developer. That is fixed in cmake master but not released yet. A workaround is to create a symlink:
ln -s /Applications/Xcode.app/Contents/Developer /Developer

Resources