Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
ff152ab
feat: onramper headless native buy (OK-57216)
franco-chan Jul 17, 2026
1897a3e
Merge remote-tracking branch 'origin/x' into claude/onramper-headless…
franco-chan Jul 17, 2026
d499f94
feat: dev allowlist to demo headless buy from real entries
franco-chan Jul 17, 2026
28f394e
fix: prevent app freeze when closing headless buy modal
franco-chan Jul 17, 2026
f96865d
feat: reuse swap success lottie on headless buy result page
franco-chan Jul 17, 2026
da07ddd
feat: card-style order details on headless buy result page
franco-chan Jul 17, 2026
8e6a4f0
refactor: dedupe headless buy UI primitives and trim wasted work
franco-chan Jul 17, 2026
97d9685
feat: switch headless buy placeholder copy to english
franco-chan Jul 19, 2026
914d180
Merge remote-tracking branch 'origin/x' into feat/onramper-headless-buy
weatherstar Aug 3, 2026
6129a2a
chore: bump @onramper/onramper-react-native to 1.1.1
weatherstar Aug 3, 2026
97082eb
chore: remove temporary onramper debug instrumentation
weatherstar Aug 3, 2026
30ccfd6
feat: route headless buy via backend headlessSupported flag (OK-58060)
weatherstar Aug 3, 2026
698fb4d
feat: rely on IP geo-detect instead of pinned country for headless buy
weatherstar Aug 3, 2026
7283b58
feat: inject onramper production credentials via build-time env (OK-5…
weatherstar Aug 7, 2026
57b035f
fix: harden headless buy guards per self-review (OK-58151)
weatherstar Aug 10, 2026
ac7029d
chore: raise iOS deployment target to 16.0 (OK-58151)
weatherstar Aug 11, 2026
6f98521
fix: wrap headless buy quote error copy in two-line hero slot (OK-58151)
weatherstar Aug 12, 2026
ce0aa82
feat: promote OnramperID sign-out button to all builds (OK-58151)
weatherstar Aug 12, 2026
a71d5c1
fix: regenerate nitro package codegen for react-native-nitro-modules …
weatherstar Aug 12, 2026
123d194
fix: soften headless buy success copy and add order id copy (OK-58151)
weatherstar Aug 14, 2026
6e60f03
chore: upgrade react-native-mmkv to 4.2.0 for nitro 0.35 codegen (OK-…
weatherstar Aug 14, 2026
fc8ff06
chore: upgrade @onekeyfe native packages to 3.0.82 and drop nitro cod…
weatherstar Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@ COVALENT_KEY=
JPUSH_KEY=
JPUSH_CHANNEL=

# Onramper Headless SDK production pair (native iOS buy, OK-59538).
# Publishable pk_... key + client id — NOT the backend partner secret.
# CI injects via GitHub secrets; for local production-profile builds put the
# values in the git-ignored root .env (never in .env.expo / .env.version).
ONRAMPER_CLIENT_ID=
ONRAMPER_API_KEY=

# for webpack analyzer
ENABLE_ANALYZER=
ENABLE_ANALYZER_HTML_REPORT=
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/release-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ jobs:
additional_env: |
NO_FLIPPER=1
SENTRY_DISABLE_AUTO_UPLOAD=false
ONRAMPER_CLIENT_ID=${{ secrets.ONRAMPER_CLIENT_ID }}
ONRAMPER_API_KEY=${{ secrets.ONRAMPER_API_KEY }}
env_file_name: '.env.expo'
sentry_project: ''
covalent_key: ${{ secrets.COVALENT_KEY }}
Expand Down
33 changes: 29 additions & 4 deletions apps/mobile/ios/OneKeyWallet.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "OneKeyWallet" */;
buildPhases = (
0288C121D3EE8444D1801CDC /* [OneKey] Assert App Attest environment */,
860344BEAD92EB4C2606DBCA /* [CP] Check Pods Manifest.lock */,
D8981D2998B0CB74725DB299 /* [Expo] Configure project */,
13B07F871A680F5B00A75B9A /* Sources */,
Expand Down Expand Up @@ -398,6 +399,26 @@
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
0288C121D3EE8444D1801CDC /* [OneKey] Assert App Attest environment */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "[OneKey] Assert App Attest environment";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "# Onramper production credentials ship only in Release JS bundles\n# (platformEnv.isDev picks the staging pair in Debug), and the SDK's App\n# Attest assertion only passes when the entitlement environment matches the\n# key's environment. Fail the build instead of shipping a Release app whose\n# attestation can never succeed (OK-59538).\nif [ \"${CONFIGURATION}\" = \"Release\" ] && [ \"${ONEKEY_APPATTEST_ENVIRONMENT}\" != \"production\" ]; then\n echo \"error: Release builds require ONEKEY_APPATTEST_ENVIRONMENT=production (got '${ONEKEY_APPATTEST_ENVIRONMENT}'). App Attest must match the Onramper production credentials (OK-59538).\"\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
2FA0D2DF4C8B4E3B9FCE32CA /* Upload Debug Symbols to Sentry */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
Expand All @@ -419,12 +440,14 @@
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-OneKeyWallet/Pods-OneKeyWallet-frameworks.sh",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OnramperReactNative/OnramperSDK.framework/OnramperSDK",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ReactNativeLiteCard/GPChannelSDKCore.framework/GPChannelSDKCore",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnramperSDK.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GPChannelSDKCore.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
Expand Down Expand Up @@ -690,12 +713,13 @@
"FB_SONARKIT_ENABLED=1",
);
INFOPLIST_FILE = OneKeyWallet/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.5;
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
ONEKEY_APPATTEST_ENVIRONMENT = development;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"$(inherited)",
Expand Down Expand Up @@ -729,12 +753,13 @@
ENABLE_NATIVE_BACKGROUND_THREAD = true;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
INFOPLIST_FILE = OneKeyWallet/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.5;
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
ONEKEY_APPATTEST_ENVIRONMENT = production;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = (
"$(inherited)",
Expand Down Expand Up @@ -939,7 +964,7 @@
INFOPLIST_FILE = ServiceExtension/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = ServiceExtension;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 15.5;
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
LD = clang;
LDPLUSPLUS = "clang++";
LD_RUNPATH_SEARCH_PATHS = (
Expand Down Expand Up @@ -984,7 +1009,7 @@
INFOPLIST_FILE = ServiceExtension/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = ServiceExtension;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 15.5;
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
LD = clang;
LDPLUSPLUS = "clang++";
LD_RUNPATH_SEARCH_PATHS = (
Expand Down
2 changes: 2 additions & 0 deletions apps/mobile/ios/OneKeyWallet/OneKeyWallet.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
<string>applinks:perps.onekeytest.com</string>
<string>applinks:swap.onekey.so</string>
</array>
<key>com.apple.developer.devicecheck.appattest-environment</key>
<string>$(ONEKEY_APPATTEST_ENVIRONMENT)</string>
<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>
<key>com.apple.developer.icloud-container-identifiers</key>
Expand Down
Loading
Loading