Skip to content

Bump native SDKs to iOS 4.6.0 and Android 1.8.0 and cut 1.3.0 - #15

Merged
jsantelys-as merged 3 commits into
mainfrom
chore/jsantelys/bump-native-sdks-ios-4.6.0-android-1.8.0
Sep 3, 2026
Merged

Bump native SDKs to iOS 4.6.0 and Android 1.8.0 and cut 1.3.0#15
jsantelys-as merged 3 commits into
mainfrom
chore/jsantelys/bump-native-sdks-ios-4.6.0-android-1.8.0

Conversation

@jsantelys-as

Copy link
Copy Markdown
Collaborator

Moves both native pins to the current stable releases, cuts the wrapper as
1.3.0, and brings the release guide up to date with the workflow.

Native pins

Editor/AppstackDependencies.xml and Editor/AppstackIOSPostProcessBuild.cs
move to Android 1.8.0 and iOS 4.6.0, together with the native and
integration fixtures that assert them and the public platform documentation.

Neither bridge changes. The Android public API is byte-identical between
1.7.0 and 1.8.0 — verified by diffing javap output for
AppstackAttributionSdk, EventType, and LogLevel across both AARs. The
iOS private Swift interface adds only import CryptoKit and an
ASA_ATTRIBUTION event type, which the SDK emits itself, alongside the
existing FIRST_OPEN and FIRST_OPEN_GUARDED. Runtime/EventType.cs
continues to mirror the Android enum exactly.

Platform floors are unchanged: iOS 15.0+ and Android API level 21+. The new
Android crypto classes ship their own consumer keep rules in the AAR, so
proguard-user.txt is unaffected.

Release

1.3.0 is a minor: the wrapper's public API is unchanged, but both native
SDKs moved a minor version and bring new behavior to integrators. The
changelog summarizes that behavior from the native SDKs' public changelogs.

Release guide

RELEASING.md predated the signing work in #14 and the -SNAPSHOT guard in
#7. It now records both, names the three UPM secrets the job requires, and
notes that the GitHub Release carries the ZIP and the signed .tgz.

The publish action exposes a signed output that the workflow never asserts,
so an unsigned publish would still leave the job green. Added as a manual
publish step rather than a workflow change, since whether OpenUPM consumes the
signed .tgz at all is still open.

Validation

  • Android native contract suite passes: the production Java bridge compiles
    against the real 1.8.0 artifact.
  • iOS native contract suite passes: 12/12 XCTest cases, then the bridge
    compiles against the checksum-verified 4.6.0 release artifact with every
    expected C ABI symbol present.
  • set-version.mjs --check 1.3.0 passes, so the tag gate will match.
  • Simulated the workflow packaging: every allowlist entry resolves, the
    -SNAPSHOT guard passes, and .meta coverage and GUID uniqueness hold.

Not run, as they need Unity and physical devices: the Unity Test Runner editor
tests, the Tests~/Integration matrix, and the device-build matrix in
DEVELOPMENT.md.

Move both pins, their validation fixtures, and the public platform
documentation together.

The Android public API is byte-identical between 1.7.0 and 1.8.0, and the
iOS private Swift interface adds only an SDK-emitted ASA_ATTRIBUTION event
type, so neither bridge changes. Platform floors stay at iOS 15.0+ and
Android API level 21+.

Drop the claim that the committed AppstackSDK.xcframework directory is
byte-identical across a version range. The range was not verified past
4.5.0, and the reason the fixture ignores that directory is that it does
not track the tag.
Generate package.json and Runtime/AppstackVersion.cs together with
scripts~/set-version.mjs, and promote the changelog entry to a dated
section.

Summarize the native releases the pin picks up, from their public
changelogs: on-device custom event parameter encryption on both platforms,
the Apple privacy manifest added in iOS 4.5.1, and the iOS event parameter
fixes for null and non-representable values.
RELEASING.md predated the package signing added in #14 and the -SNAPSHOT
guard added in #7. Record both, name the three UPM secrets the job needs,
and note that the ZIP and the signed .tgz are both attached to the release.

Add a publish step to confirm OpenUPM reports the version as signed. The
publish action exposes a signed output that the workflow does not assert,
so an unsigned publish leaves the job green.

The iOS privacy manifest shipped natively in 4.5.1, so the deferred item
is now verification rather than adding it.
@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Essentials

Run ID: 10b5e070-d531-4ebd-9b4a-581df3e1a673

📥 Commits

Reviewing files that changed from the base of the PR and between 21a62da and 1e73b28.

📒 Files selected for processing (13)
  • CHANGELOG.md
  • DEVELOPMENT.md
  • Documentation~/Android.md
  • Editor/AppstackDependencies.xml
  • Editor/AppstackIOSPostProcessBuild.cs
  • RELEASING.md
  • Runtime/AppstackVersion.cs
  • Tests~/Integration/README.md
  • Tests~/Integration/UnityProject/Assets/Editor/AppstackIntegrationBuild.cs
  • Tests~/Native/Android/real-artifact/build.gradle.kts
  • Tests~/Native/README.md
  • Tests~/Native/iOS/run-tests.sh
  • package.json

Included review availability: 3 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.

📜 Recent review details
🔇 Additional comments (13)
Runtime/AppstackVersion.cs (1)

8-8: LGTM!

package.json (1)

4-4: LGTM!

CHANGELOG.md (1)

8-27: LGTM!

Tests~/Native/Android/real-artifact/build.gradle.kts (1)

26-26: LGTM!

Tests~/Native/README.md (1)

12-12: LGTM!

Also applies to: 30-30, 45-47

Tests~/Native/iOS/run-tests.sh (1)

26-36: LGTM!

RELEASING.md (1)

18-39: LGTM!

Also applies to: 72-80

Editor/AppstackDependencies.xml (1)

10-10: LGTM!

Editor/AppstackIOSPostProcessBuild.cs (1)

13-13: LGTM!

Documentation~/Android.md (1)

36-36: LGTM!

DEVELOPMENT.md (1)

94-96: LGTM!

Also applies to: 138-138, 215-216

Tests~/Integration/README.md (1)

65-65: LGTM!

Tests~/Integration/UnityProject/Assets/Editor/AppstackIntegrationBuild.cs (1)

305-305: LGTM!


📝 Summary

Summary by CodeRabbit

  • New Features

    • Appstack Unity SDK updated to version 1.3.0.
    • Added device-side custom-parameter encryption with platform-specific behavior.
    • Added an iOS privacy manifest.
    • Improved iOS handling for null or unrepresentable event parameters.
  • Documentation

    • Updated native SDK version references and integration guidance for Android 1.8.0 and iOS 4.6.0.
    • Expanded release documentation for signed packages, artifact verification, and stable dependency requirements.

Walkthrough

The release updates the Unity package to 1.3.0, aligns Android and iOS native SDK references, updates integration validation, documents iOS privacy-manifest verification, and expands signed release and OpenUPM publication checks.

Changes

SDK release alignment

Layer / File(s) Summary
Release identity and notes
Runtime/AppstackVersion.cs, package.json, CHANGELOG.md
The package version changes to 1.3.0. The changelog records native SDK updates and platform behavior changes.
Native dependency alignment
Editor/*, Documentation~/Android.md, DEVELOPMENT.md, Tests~/Integration/*, Tests~/Native/*
Android references change to SDK 1.8.0. iOS references and validation change to Swift package 4.6.0. Documentation updates describe XCFramework resolution and privacy-manifest verification.
Release procedure updates
RELEASING.md
Release checks now cover stable dependencies, signed UPM artifacts, attestations, required secrets, and OpenUPM tag-based packaging.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 1e73b

This release updates the Unity wrapper and aligned Android and iOS SDK pins, with matching package metadata, export validation references, and release documentation. No current merge-blocking risk remains.

Poem

A rabbit packs version one-three-oh,
Native pins line up in rows.
Android hops to one-eight bright,
iOS checks the package right.
Signed release carrots join the show.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 5 files. (8 skipped: 8 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main changes: native SDK version bumps to iOS 4.6.0 and Android 1.8.0, plus the 1.3.0 wrapper release.
Description check ✅ Passed The description directly explains the native SDK updates, wrapper release, release-guide changes, and validation results.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 5 files. (8 skipped: 8 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/jsantelys/bump-native-sdks-ios-4.6.0-android-1.8.0
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch chore/jsantelys/bump-native-sdks-ios-4.6.0-android-1.8.0

Comment @coderabbitai help to get the list of available commands.

@jsantelys-as
jsantelys-as merged commit f2730df into main Sep 3, 2026
1 check passed
@jsantelys-as
jsantelys-as deleted the chore/jsantelys/bump-native-sdks-ios-4.6.0-android-1.8.0 branch September 3, 2026 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant