Skip to content

Commit 1425658

Browse files
authored
Merge pull request #325 from BranchMetrics/fix-cordova-7
fix: added support for cordova 7.0.0
2 parents 2a8483c + 6f1a2a5 commit 1425658

File tree

7 files changed

+60
-21
lines changed

7 files changed

+60
-21
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ testbed/platforms
33
testbed/plugins
44
testbed/hooks
55
testbed/build.json
6+
testbed/package.json
67
node_modules
78
.installed
89
.gradle/

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "branch-cordova-sdk",
33
"description": "Branch Metrics Cordova SDK",
44
"main": "www/branch.js",
5-
"version": "2.5.16",
5+
"version": "2.5.17",
66
"homepage": "https://github.com/BranchMetrics/cordova-ionic-phonegap-branch-deep-linking",
77
"repository": {
88
"type": "git",
@@ -55,7 +55,7 @@
5555
"husky": "^0.13.2",
5656
"mkpath": "^1.0.0",
5757
"node-version-compare": "^1.0.1",
58-
"plist": "^2.0.1",
58+
"plist": "^2.1.0",
5959
"semantic-release": "^6.3.6",
6060
"validate-commit-msg": "^2.11.2",
6161
"xml2js": "^0.4.17"

plugin.template.xml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ SOFTWARE.
2424
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
2525
xmlns:android="http://schemas.android.com/apk/res/android"
2626
id="branch-cordova-sdk"
27-
version="2.5.16">
27+
version="2.5.17">
2828

2929
<!-- DO NOT EDIT THIS FILE. MAKE ALL CHANGES TO plugin.template.xml INSTEAD -->
3030

@@ -37,11 +37,6 @@ SOFTWARE.
3737
<issue>https://github.com/BranchMetrics/Cordova-Ionic-PhoneGap-Deferred-Deep-Linking-SDK/issues</issue>
3838

3939
<!-- Dependencies -->
40-
<dependency
41-
id="es6-promise-plugin"
42-
version="3.0.2">
43-
</dependency>
44-
4540
<engines>
4641
<engine name="cordova" version=">=3.5.0" />
4742
</engines>

plugin.xml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ SOFTWARE.
2424
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
2525
xmlns:android="http://schemas.android.com/apk/res/android"
2626
id="branch-cordova-sdk"
27-
version="2.5.16">
27+
version="2.5.17">
2828

2929
<!-- DO NOT EDIT THIS FILE. MAKE ALL CHANGES TO plugin.template.xml INSTEAD -->
3030

@@ -37,11 +37,6 @@ SOFTWARE.
3737
<issue>https://github.com/BranchMetrics/Cordova-Ionic-PhoneGap-Deferred-Deep-Linking-SDK/issues</issue>
3838

3939
<!-- Dependencies -->
40-
<dependency
41-
id="es6-promise-plugin"
42-
version="3.0.2">
43-
</dependency>
44-
4540
<engines>
4641
<engine name="cordova" version=">=3.5.0" />
4742
</engines>

src/scripts/ios/enableEntitlements.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,10 @@
1515
// updates the xcode preferences to allow associated domains
1616
function enableAssociatedDomains (preferences) {
1717
var entitlementsFile = path.join(preferences.projectRoot, 'platforms', 'ios', preferences.projectName, 'Resources', preferences.projectName + '.entitlements')
18-
var projectFile = preferences.iosProjectModule.parseProjectFile(path.join(preferences.projectRoot, 'platforms', 'ios'))
1918

20-
activateAssociativeDomains(projectFile.xcode, entitlementsFile)
21-
addPbxReference(projectFile.xcode, entitlementsFile)
22-
projectFile.write()
19+
activateAssociativeDomains(preferences.iosProjectModule.xcode, entitlementsFile)
20+
addPbxReference(preferences.iosProjectModule.xcode, entitlementsFile)
21+
preferences.iosProjectModule.write()
2322
}
2423

2524
// adds entitlement files to the xcode project

src/scripts/npm/processConfigXml.js

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,58 @@
105105

106106
// read iOS project module from cordova context
107107
function getProjectModule (context) {
108-
// try pre-5.0 cordova structure
108+
var projectRoot = getProjectRoot(context)
109+
var projectPath = path.join(projectRoot, 'platforms', 'ios')
110+
109111
try {
110-
return context.requireCordovaModule('cordova-lib/src/plugman/platforms').ios
112+
// pre 5.0 cordova structure
113+
return context.requireCordovaModule('cordova-lib/src/plugman/platforms').ios.parseProjectFile(projectPath)
111114
} catch (e) {
112-
return context.requireCordovaModule('cordova-lib/src/plugman/platforms/ios')
115+
try {
116+
// pre 7.0 cordova structure
117+
return context.requireCordovaModule('cordova-lib/src/plugman/platforms/ios').parseProjectFile(projectPath)
118+
} catch (e) {
119+
// post 7.0 cordova structure
120+
return getProjectModuleGlob(context)
121+
}
122+
}
123+
}
124+
125+
function getProjectModuleGlob (context) {
126+
// get xcodeproj
127+
var projectRoot = getProjectRoot(context)
128+
var projectPath = path.join(projectRoot, 'platforms', 'ios')
129+
var projectFiles = context.requireCordovaModule('glob').sync(path.join(projectPath, '*.xcodeproj', 'project.pbxproj'))
130+
if (projectFiles.length === 0) return
131+
var pbxPath = projectFiles[0]
132+
var xcodeproj = context.requireCordovaModule('xcode').project(pbxPath)
133+
134+
// add hash
135+
xcodeproj.parseSync()
136+
137+
// return xcodeproj and write method
138+
return {
139+
'xcode': xcodeproj,
140+
'write': function () {
141+
// save xcodeproj
142+
var fs = context.requireCordovaModule('fs')
143+
fs.writeFileSync(pbxPath, xcodeproj.writeSync())
144+
145+
// pull framework dependencies
146+
var frameworksFile = path.join(projectPath, 'frameworks.json')
147+
var frameworks = {}
148+
149+
try {
150+
frameworks = context.requireCordovaModule(frameworksFile)
151+
} catch (e) {}
152+
// If there are no framework references, remove this file
153+
if (Object.keys(frameworks).length === 0) {
154+
return context.requireCordovaModule('shelljs').rm('-rf', frameworksFile)
155+
}
156+
157+
// save frameworks
158+
fs.writeFileSync(frameworksFile, JSON.stringify(frameworks, null, 4))
159+
}
113160
}
114161
}
115162

testbed/init.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,11 @@ main() {
6262
npm uninstall mkpath node-version-compare plist xml2js
6363
fi
6464
rm -rf ../.installed
65+
rm -rf ./node_modules
6566
rm -rf ./plugins
6667
rm -rf ./platforms
6768
rm -rf ./build.json
69+
rm -rf ./package.json
6870

6971
# build (platforms added before plugin because before_plugin_install does not work on file reference)
7072
if [[ "$run_ios" == "true" ]]; then

0 commit comments

Comments
 (0)