UNPKG

@circle-fin/w3s-pw-react-native-sdk

Version:

React Native SDK for Circle Programmable Wallet

113 lines (103 loc) 3.96 kB
# @circle-fin/w3s-pw-react-native-sdk React Native SDK for Circle Programmable Wallet ## Install NVM Install Node Version Manager to use different versions of node and npm easily. ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash ``` > **Note:** See [nvm repo](https://github.com/nvm-sh/nvm) for the most updated instruction. ## Authenticate the npm registry Create a Personal Access Token in your [GitHub setting](https://github.com/settings/tokens). Use `Configure SSO` button next to your created token to authorize `circlefin` organization. More instruction can be found [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens). Then, log in to `npm` on your terminal. ```bash npm login --scope=@OWNER --registry=https://registry.npmjs.org ``` This will ask you to submit your GitHub personal access token as below. Check below links for creating GitHub PAT: - [Creating a fine-grained personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) - [Creating a personal access token (classic)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic) ```properties npm notice Log in on https://registry.npmjs.org/ Username: <insert your GitHub username here> Password: <insert your GitHub personal access token here> ``` ## [Enable the New Architecture]((https://reactnative.dev/docs/new-architecture-app-intro#android---enable-the-new-architecture) ) The SDK is supporting both React Native old and [new architectures](https://reactnative.dev/docs/the-new-architecture/landing-page). You can enable the new architecture by changing the project setting. ### Android Update the `android/gradle.properties` file as follows: ```properties newArchEnabled=true ``` ### iOS Reinstall your pods by running pod install with the right flag: ```shell RCT_NEW_ARCH_ENABLED=1 bundle exec pod install ``` ## Installation ### Using yarn ```shell yarn add @circle-fin/w3s-pw-react-native-sdk ``` ### Using npm ```shell npm install @circle-fin/w3s-pw-react-native-sdk ``` ## Link Native Dependencies ### Android Add the maven repository to your `android/build.gradle`. It's suggested that load settings from `local.properties`: ```properties repositories { ... maven { Properties properties = new Properties() // Load local.properties. properties.load(new File(rootDir.absolutePath + "/local.properties").newDataInputStream()) url properties.getProperty('pwsdk.maven.url') credentials { username properties.getProperty('pwsdk.maven.username') password properties.getProperty('pwsdk.maven.password') } } } ``` Add the maven setting values in `local.properties` file. ```properties pwsdk.maven.url=https://maven.pkg.github.com/circlefin/w3s-android-sdk pwsdk.maven.username=<GITHUB_USERNAME> # Fine-grained personal access tokens or classic with package write permission. pwsdk.maven.password=<GITHUB_PAT> ``` ### iOS Add below links at tne top of `ios/Podfile`: ```ruby source 'https://github.com/circlefin/w3s-ios-sdk.git' source 'https://github.com/CocoaPods/Specs.git' platform :ios, '13.4' ``` Declare dynamic link as below: ```ruby target 'W3sSampleWallet' do use_frameworks! end ``` And add the following `post_install` hook: ```ruby post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings["ONLY_ACTIVE_ARCH"] = "NO" config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' end end end ``` ## Run the Example ### Android ```bash yarn example android ``` ### iOS ```bash yarn example ios ```