- Status: Proposed
Corresponding mailing list discussion is here.
JIRA issue tracking this is here
This is not a platform specific issue, at least for cordova-ios, and is the domain of the cordova-lib/cli currently. The cordova-lib re-factor might change this however.
Proposed support is through the existing <engine>
and <framework>
tags.
<engines>
<engine name="cocoapods" version=">=0.39.0" platform="ios" />
<engine name="nuget" version=">=3.2" platform="windows" />
</engines>
<framework src="name_of_cocoapod" type="podspec" spec="~> 1.1.2"/>
<framework src="path/to/mynu.nuspec" type="nuspec" />
The above use existing documented attributes for both the <engine>
and <framework>
tags.
The name
attribute would specify the command-line package manager to be used, for example "cocoapods" or "nuget". The version
attribute should correspond to the version of the package manager supported -- the package manager itself should support sending its version to stdout
. In this case, the platform
attribute supported is implicit (since cocoapods is only supported in OS X and nuget in Windows), so the attribute is superfluous.
The src
attribute can be a relative path or a URL. The type
attribute specifies the type of framework that corresponds to the engine
supported. In this case type podspec
means that the lib should be installed using the cocoapods
package manager, and nuspec
for the nuget
package manager.
The spec
arugment will specify the version of the CocoaPod that is to be used. ~>
is CocoaPod's optimistic operator-- copied from CocoaPods docs:
- '~> 0.1.2' Version 0.1.2 and the versions up to 0.2, not including 0.2 and higher
- '~> 0.1' Version 0.1 and the versions up to 1.0, not including 1.0 and higher Cocoapods also support logical operators:
- '> 0.1' Any version higher than 0.1
- '>= 0.1' Version 0.1 and any higher version
The string passed in the spec
argument will be pasted into the Podfile.