Skip to content

Commit 4171abb

Browse files
committed
feat: add installSource property to VersionCheck; update App component to display installation source. Enhance native implementations for Android and iOS to support install source detection.
1 parent 7c399ea commit 4171abb

15 files changed

Lines changed: 89 additions & 0 deletions

File tree

example/App.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export default function App() {
4545
<Text style={styles.label}>Build: {VersionCheck.buildNumber}</Text>
4646
<Text style={styles.label}>Package: {VersionCheck.packageName}</Text>
4747
<Text style={styles.label}>Country: {VersionCheck.getCountry()}</Text>
48+
<Text style={styles.label}>Install: {VersionCheck.installSource ?? "Dev Build"}</Text>
4849

4950
<View style={styles.divider} />
5051

package/android/src/main/java/com/margelo/nitro/nitroversioncheck/HybridVersionCheck.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,15 @@ class HybridVersionCheck : HybridVersionCheckSpec() {
2222
}
2323

2424
public override val packageName = packageInfo?.packageName ?: "unknown"
25+
public override val installSource: String? = run {
26+
val installer = if (android.os.Build.VERSION.SDK_INT >= 30) {
27+
context?.packageManager?.getInstallSourceInfo(context.packageName)?.installingPackageName
28+
} else {
29+
@Suppress("DEPRECATION")
30+
context?.packageManager?.getInstallerPackageName(context.packageName)
31+
}
32+
if (installer != null) "playstore" else null
33+
}
2534

2635
override fun getCountry(): String {
2736
return java.util.Locale.getDefault().country ?: "unknown"

package/ios/HybridVersionCheck.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,16 @@ class HybridVersionCheck: HybridVersionCheckSpec {
1212
var version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "unknown"
1313
var buildNumber = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "unknown"
1414
var packageName = Bundle.main.infoDictionary?["CFBundleIdentifier"] as? String ?? "unknown"
15+
var installSource: String? = {
16+
guard let receiptURL = Bundle.main.appStoreReceiptURL,
17+
FileManager.default.fileExists(atPath: receiptURL.path) else {
18+
return nil
19+
}
20+
if receiptURL.lastPathComponent == "sandboxReceipt" {
21+
return "testflight"
22+
}
23+
return "appstore"
24+
}()
1525

1626
func getCountry() throws -> String {
1727
if #available(iOS 16, *) {

package/nitrogen/generated/android/c++/JHybridVersionCheckSpec.cpp

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/android/c++/JHybridVersionCheckSpec.hpp

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroversioncheck/HybridVersionCheckSpec.kt

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/ios/NitroVersionCheck-Swift-Cxx-Bridge.hpp

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/ios/NitroVersionCheck-Swift-Cxx-Umbrella.hpp

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/ios/c++/HybridVersionCheckSpecSwift.hpp

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/nitrogen/generated/ios/swift/HybridVersionCheckSpec.swift

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)