Skip to content

Commit

Permalink
feat: able to simulate installs on android
Browse files Browse the repository at this point in the history
  • Loading branch information
ethanneff committed Mar 2, 2017
1 parent f4ce3de commit 092580a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 11 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -693,6 +693,7 @@
<ios-team-prod value="PW4Q8885U7" />
<ios-team-test value="FG35JLLMXX4A" /> <!-- optional -->
<android-prefix value="/WSuf" /> <!-- optional (bnc.lt) -->
<android-testmode value="true" /> <!-- optional (simulate installs) -->
</branch-config>
```

Expand Down
32 changes: 21 additions & 11 deletions hooks/lib/android/androidManifest.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
console.log('BRANCH SDK: Updating AndroidManifest.xml')

// update manifest
manifest = updateBranchKeyMetaData(manifest, preferences)
manifest = updateBranchMetaData(manifest, preferences)
manifest = updateBranchReferrerTracking(manifest)
manifest = updateLaunchOptionToSingleTask(manifest, mainActivityIndex, preferences)
manifest = updateBranchURIScheme(manifest, mainActivityIndex, preferences)
Expand All @@ -28,22 +28,32 @@
xmlHelper.writeJsonAsXml(manifest, pathToManifest)
}

// adds to <application> for Branch init:
// adds to <application> for Branch init and testmode:
// <meta-data android:name="io.branch.sdk.BranchKey" android:value="key_live_icCccJIpd7GlYY5oOmoEtpafuDiuyXhT" />
function updateBranchKeyMetaData (manifest, preferences) {
// <meta-data android:name="io.branch.sdk.TestMode" android:value="false" />
function updateBranchMetaData (manifest, preferences) {
var metadatas = manifest['manifest']['application'][0]['meta-data'] || []
var androidName = 'io.branch.sdk.BranchKey'
var metadata = []
var keys = ['io.branch.sdk.BranchKey', 'io.branch.sdk.TestMode']
var vals = [preferences.branchKey, preferences.androidTestMode]

// remove old
metadatas = removeBasedOnAndroidName(metadatas, androidName)
for (var i = 0; i < keys.length; i++) {
metadatas = removeBasedOnAndroidName(metadatas, keys[i])
}

// add new
manifest['manifest']['application'][0]['meta-data'] = metadatas.concat([{
'$': {
'android:name': androidName,
'android:value': preferences.branchKey
}
}])
for (i = 0; i < keys.length; i++) {
var key = keys[i]
var val = vals[i]
metadata.push({
'$': {
'android:name': key,
'android:value': val
}
})
}
manifest['manifest']['application'][0]['meta-data'] = metadatas.concat(metadata)

return manifest
}
Expand Down
4 changes: 4 additions & 0 deletions hooks/lib/sdk/configXml.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
var iosTeamProd = (branchXml.hasOwnProperty('ios-team-prod')) ? branchXml['ios-team-prod'][0]['$']['value'] : null
var iosTeamDev = (branchXml.hasOwnProperty('ios-team-dev')) ? branchXml['ios-team-dev'][0]['$']['value'] : null
var androidPrefix = (branchXml.hasOwnProperty('android-prefix')) ? branchXml['android-prefix'][0]['$']['value'] : null
var androidTestMode = (branchXml.hasOwnProperty('android-testmode')) ? branchXml['android-testmode'][0]['$']['value'] : 'false'

return {
'projectRoot': projectRoot,
Expand All @@ -68,6 +69,7 @@
'iosTeamProd': iosTeamProd,
'iosTeamDev': iosTeamDev, // optional
'androidPrefix': androidPrefix // optional
'androidTestMode': androidTestMode // optional
}
}

Expand Down Expand Up @@ -105,6 +107,8 @@
}
if (preferences.iosTeamProd === null) {
throw new Error('BRANCH SDK: Missing "ios-team-prod" in <branch-config> in your config.xml. https://goo.gl/GijGKP')
if (!(preferences.androidTestMode === 'true' || preferences.androidTestMode === 'false')) {
throw new Error('BRANCH SDK: Invalid "android-testmode" in <branch-config> in your config.xml. Docs https://goo.gl/GijGKP')
}
}
})()

0 comments on commit 092580a

Please sign in to comment.