appsprint-react-native 1.0.4 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/android/libs/appsprint-sdk.aar +0 -0
- package/android/src/main/AndroidManifest.xml +1 -0
- package/android/src/main/kotlin/com/appsprint/AppSprintBridgeModule.kt +30 -0
- package/ios/AppSprintBridge.swift +26 -0
- package/ios/AppSprintSDK.xcframework/ios-arm64/AppSprintSDK.framework/AppSprintSDK +0 -0
- package/ios/AppSprintSDK.xcframework/ios-arm64/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/arm64-apple-ios.abi.json +2183 -160
- package/ios/AppSprintSDK.xcframework/ios-arm64/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/arm64-apple-ios.package.swiftinterface +30 -1
- package/ios/AppSprintSDK.xcframework/ios-arm64/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +30 -1
- package/ios/AppSprintSDK.xcframework/ios-arm64/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/arm64-apple-ios.swiftinterface +30 -1
- package/ios/AppSprintSDK.xcframework/ios-arm64_x86_64-simulator/AppSprintSDK.framework/AppSprintSDK +0 -0
- package/ios/AppSprintSDK.xcframework/ios-arm64_x86_64-simulator/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +2183 -160
- package/ios/AppSprintSDK.xcframework/ios-arm64_x86_64-simulator/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/arm64-apple-ios-simulator.package.swiftinterface +30 -1
- package/ios/AppSprintSDK.xcframework/ios-arm64_x86_64-simulator/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +30 -1
- package/ios/AppSprintSDK.xcframework/ios-arm64_x86_64-simulator/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +30 -1
- package/ios/AppSprintSDK.xcframework/ios-arm64_x86_64-simulator/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +2183 -160
- package/ios/AppSprintSDK.xcframework/ios-arm64_x86_64-simulator/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/x86_64-apple-ios-simulator.package.swiftinterface +30 -1
- package/ios/AppSprintSDK.xcframework/ios-arm64_x86_64-simulator/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +30 -1
- package/ios/AppSprintSDK.xcframework/ios-arm64_x86_64-simulator/AppSprintSDK.framework/Modules/AppSprintSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +30 -1
- package/lib/typescript/types.d.ts +26 -0
- package/package.json +1 -1
- package/plugin/build/index.js +1 -0
- package/plugin/src/index.ts +1 -0
- package/src/types.ts +26 -0
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ The native pod is vendored inside the package, so no extra repository setup is n
|
|
|
31
31
|
|
|
32
32
|
### Android
|
|
33
33
|
|
|
34
|
-
Auto-linking handles the Android side. The package's manifest declares `INTERNET` and `com.google.android.gms.permission.AD_ID`, which merge into your app at build time.
|
|
34
|
+
Auto-linking handles the Android side. The package's manifest declares `INTERNET`, `ACCESS_NETWORK_STATE`, and `com.google.android.gms.permission.AD_ID`, which merge into your app at build time.
|
|
35
35
|
|
|
36
36
|
### Expo
|
|
37
37
|
|
|
@@ -218,7 +218,7 @@ The native Android SDK reads GAID during install registration, off the main thre
|
|
|
218
218
|
|
|
219
219
|
The vendored iOS framework ships a `PrivacyInfo.xcprivacy` manifest declaring `UserDefaults` access plus `DeviceID`, `ProductInteraction`, `UserID`, `CoarseLocation`, and `OtherDataTypes` collection, all marked `Tracking: true`, with `api.appsprint.app` listed as a tracking domain.
|
|
220
220
|
|
|
221
|
-
For Android, include advertising ID collection, device IDs, app activity, and (if you set `customerUserId`) user ID in your Play Console Data safety answers.
|
|
221
|
+
For Android, include advertising ID collection, device IDs, approximate location/network-derived country, device or other identifiers, app activity, and (if you set `customerUserId`) user ID in your Play Console Data safety answers.
|
|
222
222
|
|
|
223
223
|
Don't pass raw PII through `params` or `customerUserId`. Both persist to native storage for retry durability. Use hashed or opaque identifiers instead (SHA-256 of an email, RevenueCat or Superwall `app_user_id`, your internal user UUID).
|
|
224
224
|
|
|
@@ -265,7 +265,7 @@ import { AppSprint } from "appsprint-react-native";
|
|
|
265
265
|
import { NativeAppSprint } from "appsprint-react-native";
|
|
266
266
|
```
|
|
267
267
|
|
|
268
|
-
- `getDeviceInfo()` returns the device
|
|
268
|
+
- `getDeviceInfo()` returns the attribution device signal payload.
|
|
269
269
|
- `getAdServicesToken()` returns Apple's AdServices token on iOS; `null` on Android.
|
|
270
270
|
- `requestTrackingAuthorization()` shows the ATT prompt on iOS; resolves `true` on Android.
|
|
271
271
|
|
|
Binary file
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
2
2
|
package="com.appsprint">
|
|
3
3
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
4
|
+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
4
5
|
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
|
|
5
6
|
</manifest>
|
|
@@ -252,6 +252,36 @@ class AppSprintBridgeModule(reactContext: ReactApplicationContext) : ReactContex
|
|
|
252
252
|
deviceInfo.deviceModel?.let { info.putString("deviceModel", it) }
|
|
253
253
|
deviceInfo.screenWidth?.let { info.putInt("screenWidth", it) }
|
|
254
254
|
deviceInfo.screenHeight?.let { info.putInt("screenHeight", it) }
|
|
255
|
+
deviceInfo.nativeScreenWidth?.let { info.putInt("nativeScreenWidth", it) }
|
|
256
|
+
deviceInfo.nativeScreenHeight?.let { info.putInt("nativeScreenHeight", it) }
|
|
257
|
+
deviceInfo.screenScale?.let { info.putDouble("screenScale", it) }
|
|
258
|
+
deviceInfo.hardwareConcurrency?.let { info.putInt("hardwareConcurrency", it) }
|
|
259
|
+
deviceInfo.processorCount?.let { info.putInt("processorCount", it) }
|
|
260
|
+
deviceInfo.maxTouchPoints?.let { info.putInt("maxTouchPoints", it) }
|
|
261
|
+
deviceInfo.memoryGb?.let { info.putInt("memoryGb", it) }
|
|
262
|
+
deviceInfo.lowPowerMode?.let { info.putBoolean("lowPowerMode", it) }
|
|
263
|
+
deviceInfo.batteryState?.let { info.putString("batteryState", it) }
|
|
264
|
+
deviceInfo.batteryLevelBucket?.let { info.putString("batteryLevelBucket", it) }
|
|
265
|
+
deviceInfo.preferredLanguages?.let { languages ->
|
|
266
|
+
val array = Arguments.createArray()
|
|
267
|
+
languages.forEach { array.pushString(it) }
|
|
268
|
+
info.putArray("preferredLanguages", array)
|
|
269
|
+
}
|
|
270
|
+
deviceInfo.timezoneOffsetMinutes?.let { info.putInt("timezoneOffsetMinutes", it) }
|
|
271
|
+
deviceInfo.deviceManufacturer?.let { info.putString("deviceManufacturer", it) }
|
|
272
|
+
deviceInfo.deviceBrand?.let { info.putString("deviceBrand", it) }
|
|
273
|
+
deviceInfo.deviceProduct?.let { info.putString("deviceProduct", it) }
|
|
274
|
+
deviceInfo.deviceHardware?.let { info.putString("deviceHardware", it) }
|
|
275
|
+
deviceInfo.gpuVendor?.let { info.putString("gpuVendor", it) }
|
|
276
|
+
deviceInfo.gpuRenderer?.let { info.putString("gpuRenderer", it) }
|
|
277
|
+
deviceInfo.connectionType?.let { info.putString("connectionType", it) }
|
|
278
|
+
deviceInfo.networkType?.let { info.putString("networkType", it) }
|
|
279
|
+
deviceInfo.carrierName?.let { info.putString("carrierName", it) }
|
|
280
|
+
deviceInfo.carrierCountryCode?.let { info.putString("carrierCountryCode", it) }
|
|
281
|
+
deviceInfo.mobileCountryCode?.let { info.putString("mobileCountryCode", it) }
|
|
282
|
+
deviceInfo.mobileNetworkCode?.let { info.putString("mobileNetworkCode", it) }
|
|
283
|
+
deviceInfo.sdkPlatform?.let { info.putString("sdkPlatform", it) }
|
|
284
|
+
deviceInfo.sdkVersion?.let { info.putString("sdkVersion", it) }
|
|
255
285
|
deviceInfo.locale?.let { info.putString("locale", it) }
|
|
256
286
|
deviceInfo.timezone?.let { info.putString("timezone", it) }
|
|
257
287
|
deviceInfo.osVersion?.let { info.putString("osVersion", it) }
|
|
@@ -202,6 +202,32 @@ class AppSprintBridge: NSObject {
|
|
|
202
202
|
if let m = info.deviceModel { dict["deviceModel"] = m }
|
|
203
203
|
if let w = info.screenWidth { dict["screenWidth"] = w }
|
|
204
204
|
if let h = info.screenHeight { dict["screenHeight"] = h }
|
|
205
|
+
if let w = info.nativeScreenWidth { dict["nativeScreenWidth"] = w }
|
|
206
|
+
if let h = info.nativeScreenHeight { dict["nativeScreenHeight"] = h }
|
|
207
|
+
if let scale = info.screenScale { dict["screenScale"] = scale }
|
|
208
|
+
if let concurrency = info.hardwareConcurrency { dict["hardwareConcurrency"] = concurrency }
|
|
209
|
+
if let count = info.processorCount { dict["processorCount"] = count }
|
|
210
|
+
if let touch = info.maxTouchPoints { dict["maxTouchPoints"] = touch }
|
|
211
|
+
if let memory = info.memoryGb { dict["memoryGb"] = memory }
|
|
212
|
+
if let lowPower = info.lowPowerMode { dict["lowPowerMode"] = lowPower }
|
|
213
|
+
if let state = info.batteryState { dict["batteryState"] = state }
|
|
214
|
+
if let bucket = info.batteryLevelBucket { dict["batteryLevelBucket"] = bucket }
|
|
215
|
+
if let languages = info.preferredLanguages { dict["preferredLanguages"] = languages }
|
|
216
|
+
if let offset = info.timezoneOffsetMinutes { dict["timezoneOffsetMinutes"] = offset }
|
|
217
|
+
if let value = info.deviceManufacturer { dict["deviceManufacturer"] = value }
|
|
218
|
+
if let value = info.deviceBrand { dict["deviceBrand"] = value }
|
|
219
|
+
if let value = info.deviceProduct { dict["deviceProduct"] = value }
|
|
220
|
+
if let value = info.deviceHardware { dict["deviceHardware"] = value }
|
|
221
|
+
if let value = info.gpuVendor { dict["gpuVendor"] = value }
|
|
222
|
+
if let value = info.gpuRenderer { dict["gpuRenderer"] = value }
|
|
223
|
+
if let value = info.connectionType { dict["connectionType"] = value }
|
|
224
|
+
if let value = info.networkType { dict["networkType"] = value }
|
|
225
|
+
if let value = info.carrierName { dict["carrierName"] = value }
|
|
226
|
+
if let value = info.carrierCountryCode { dict["carrierCountryCode"] = value }
|
|
227
|
+
if let value = info.mobileCountryCode { dict["mobileCountryCode"] = value }
|
|
228
|
+
if let value = info.mobileNetworkCode { dict["mobileNetworkCode"] = value }
|
|
229
|
+
if let value = info.sdkPlatform { dict["sdkPlatform"] = value }
|
|
230
|
+
if let value = info.sdkVersion { dict["sdkVersion"] = value }
|
|
205
231
|
if let l = info.locale { dict["locale"] = l }
|
|
206
232
|
if let t = info.timezone { dict["timezone"] = t }
|
|
207
233
|
if let o = info.osVersion { dict["osVersion"] = o }
|