Description
Environment
Provide version numbers for the following components (information can be retrieved by running tns info
in your project folder or by inspecting the package.json
of the project):
- CLI:
- Cross-platform modules:
- Android Runtime:
- iOS Runtime:
- Plugin(s):
Describe the bug
When a plugin requires a different version of MaterialComponents
than tns-core-modules-widgets
there is an error on pod install
step in the build proces.
To Reproduce
1 Create new project
2 Add /App_Resources/iOS/Podfile
with content pod 'MaterialComponents/Tabs', '< 84.4'
Expected behavior
To have a way to resolve such conflicts without plugin modification.
Solution
A property overridePods
has been introduced in nsconfig.json
. This property will cause all plugin pods to be overridden by the pods in the /App_Resources/iOS/Podfile
.
Acceptance Criteria
- 1. Change of
overridePods
innsconfig.json
should regenerateplatforms/ios/Podfile
- 2. Add or remove of pod in
/App_Resources/iOS/Podfile
should comment/uncomment a pod that is defined in a plugin in the final Podfile inplatforms/ios/Podfile
(whenoverridePods
is enabled). - 3. Newly added plugin should have the pods that match the ones in
/App_Resources/iOS/Podfile
commented in the final podfileplatforms/ios/Podfile
(whenoverridePods
is enabled). - 4. If there is a conflict in versions a Tip with a reference to article should be printed by the CLI.
- 5. Check plugin add and
nsconfig.json
change between runs. - 6. Project should work when
overridePods
is true and Podfile missing in/App-Resources/iOS/
folder
To cause a CocoaPod conflict use the attached to the issue plugin.
plugin.zip