varrandomBytes=require('react-native-randombytes')// synchronous API// uses SJCLvarrand=randomBytes(4)// asynchronous API// uses iOS-side SecRandomCopyBytesrandomBytes(4,(err,bytes)=>{console.log(bytes.toString('hex'))})rnpm linkDrag RNRandomBytes.xcodeproj from node_modules/react-native-randombytes into your XCode project.
Click on the project in XCode, go to Build Phases, then Link Binary With Libraries and add
libRNRandomBytes.a
Confused? See an example with screenshots here
- Update Gradle Settings
// file: android/settings.gradle...
include ':randombytes', ':app'
project(':randombytes').projectDir =newFile(rootProject.projectDir, '../node_modules/react-native-randombytes/android')- Update Gradle Build
// file: android/app/build.gradle...
dependencies {
...
compile project(':randombytes')
}- Register React Package
...
importcom.bitgo.randombytes.RandomBytesPackage// importpublicclassMainActivityextendsActivityimplementsDefaultHardwareBackBtnHandler {
privateReactInstanceManagermReactInstanceManager;
privateReactRootViewmReactRootView;
@OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = newReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(newMainReactPackage())
.addPackage(newRandomBytesPackage()) // register package here
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "AwesomeProject", null);
setContentView(mReactRootView);
}
...