我正在构建一个React Native应用程序,我需要保存一些敏感数据,如令牌和刷新令牌.显而易见的解决方案是使用AsyncStorage保存该信息.问题是AsyncStorage的安全级别.
AsyncStorage提供了一种本地存储令牌和数据的方法.在某些方面,它可以与LocalStorage选项进行比较.在完整的生产应用程序中,建议不要直接访问AsyncStorage,而是使用抽象层,因为AsyncStorage与使用相同浏览器的其他应用程序共享,因此从存储中删除所有项目的不当可能会影响相邻应用程序的功能.
https://auth0.com/blog/adding-authentication-to-react-native-using-jwt/
在本机应用程序,我会去Keychain的iOS,并Shared Preferences在私人模式中Android.
对于我在React Native提供的文档中读到的内容:
在iOS上,AsyncStorage由本机代码支持,该代码将小值存储在序列化字典中,将较大值存储在单独的文件中.在Android上,AsyncStorage将根据可用内容使用RocksDB或SQLite.
https://facebook.github.io/react-native/docs/asyncstorage.html
他们从不谈论数据的安全性.
这是创建模块Android(Shared Preferences在私有模式下使用)和另一个iOS(使用Keychain)来保存敏感数据的最佳解决方案吗?或者使用AsyncStorage提供的方法是否安全?
我试图直接从终端运行发布版本,我没有找到一个选项来做到这一点.
从XCode开始,需要做的是:
产品 - >方案 - >编辑方案(cmd + <),确保您在侧面的"运行"选项卡中,并将"构建配置"下拉列表设置为"释放".
有什么选择可以react-native-cli做同样的事情吗?有点像react-native run-ios -configuration Release?
我的目标是生成一个不需要服务器运行的构建,例如提供给QA团队.
我正在开始时在新的Android N预览模拟器上遇到此崩溃.
qemu: fatal: goldfish_tty_read: Bad offset 20
RAX=0000000000000009 RBX=0000000000000000 RCX=0000000000000000 RDX=0000000000000000
RSI=ffffffff817b6c7f RDI=ffff88005c3eb0c0 RBP=ffff88005e471bf8 RSP=ffff88005e471bb8
R8 =ffff88005c6a87f4 R9 =00000000ffffffff R10=ffff88005c3eb000 R11=0000000000000001
R12=ffffc9000003e000 R13=ffff88005e750810 R14=ffff88005c3eb000 R15=0000000000000000
RIP=ffffffff8127a837 RFL=00010246 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 0000000000000000 ffffffff 00000000
CS =0010 0000000000000000 ffffffff 00a09b00 DPL=0 CS64 [-RA]
SS =0018 0000000000000000 ffffffff 00c09300 DPL=0 DS [-WA]
DS =0000 0000000000000000 ffffffff 00000000
FS =0000 0000000000000000 ffffffff 00000000
GS =0000 ffffffff81a1f000 ffffffff 00000000
LDT=0000 0000000000000000 ffffffff 00000000
TR =0040 ffffffff81a1a8c0 00002087 00008b00 DPL=0 …Run Code Online (Sandbox Code Playgroud) 可以在Android Studio中的这两种测试模式之间共享代码吗?我有一套Mock Utils类,我需要在两种测试模式下访问.
扫描这个(https://www.barcoderobot.com/static/bcgen/01026/478064310081_3b120.jpg?preview=True)条形码我们应该得到以下结果:47806431008
使用iOS7 api读取条形码,我得到以下结果:047806431008
任何ideias如何处理这个?
部分代码:
CGRect highlightViewRect = CGRectZero;
AVMetadataMachineReadableCodeObject *barCodeObject;
NSString *detectionString = nil;
NSArray *barCodeTypes = @[AVMetadataObjectTypeUPCECode, AVMetadataObjectTypeCode39Code, AVMetadataObjectTypeCode39Mod43Code,
AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode93Code, AVMetadataObjectTypeCode128Code,
AVMetadataObjectTypePDF417Code, AVMetadataObjectTypeQRCode, AVMetadataObjectTypeAztecCode];
for (AVMetadataObject *metadata in metadataObjects) {
for (NSString *type in barCodeTypes) {
if ([metadata.type isEqualToString:type])
{
barCodeObject = (AVMetadataMachineReadableCodeObject *)[_prevLayer transformedMetadataObjectForMetadataObject:(AVMetadataMachineReadableCodeObject *)metadata];
highlightViewRect = barCodeObject.bounds;
detectionString = [(AVMetadataMachineReadableCodeObject *)metadata stringValue];
break;
}
}
if (detectionString != nil)
{
[_session stopRunning];
[self scanResult:detectionString];
break;
}
Run Code Online (Sandbox Code Playgroud) 由于Android API级别24设置壁纸的方法接受参数可以指定which我们想要设置(Lock或System)的壁纸.
不幸的是,我找不到使用它的方法Live Wallpapers.WallpaperManager该类中可用的方法仅支持images或InputStreams.他们不支持Live Wallpapers.
有些Samsung设备接受以下代码:
Intent intent = new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(this, LiveWallpaperService.class));
intent.putExtra("SET_LOCKSCREEN_WALLPAPER", true);
Run Code Online (Sandbox Code Playgroud)
但这只适用于某些设备.
有任何其他方法可用于以编程方式设置Live Wallpaper为Lock Screen?
我可以为Android测试提供gradle测试报告吗?我想直接在终端上报告.每次测试通过,失败或跳过时,我都希望在终端中打印报告,其中包含测试名称和状态.
对于单元测试,我可以将其添加到gradle文件以获取报告:
tasks.withType(Test) {
testLogging {
exceptionFormat "full"
events "passed", "skipped", "failed"
}
}
Run Code Online (Sandbox Code Playgroud)
我没有找到任何Android测试的解决方案.
我在手机上测试了广告功能.仅显示测试广告.当我用我从AdMob获得的单位ID替换单位ID时,不会显示真实的广告.
问题是什么?
这是我的代码:
<string name="banner_ad_unit_id">ca-app-pub-11*************1/7********5</string>
Run Code Online (Sandbox Code Playgroud)
对于我使用的xml
<com.google.android.gms.ads.AdView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
ads:adSize="BANNER"
android:id="@+id/adView"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
Run Code Online (Sandbox Code Playgroud)
用于加载广告我使用过
AdView adView=(AdView)findViewById(R.id.adView);
AdRequest adRequest= new AdRequest.Builder().setRequestAgent("android_studio:ad_template").build();
adView.loadAd(adRequest);
Run Code Online (Sandbox Code Playgroud)
在表现我有
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Run Code Online (Sandbox Code Playgroud)
...
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent"/>
Run Code Online (Sandbox Code Playgroud)
但是我的广告没有加载到Android设备中.测试广告工作正常.我使用真实设备进行所有这些操作.有什么帮助吗?
我正在尝试使用我的应用程序测试新功能多窗口,每次我尝试使我的应用程序适合屏幕的一半时,我得到一个吐司说我的应用程序不支持它.
android ×7
ios ×3
gradle ×2
react-native ×2
admob ×1
banner ×1
build.gradle ×1
ios7 ×1
testing ×1