老产品的代码里面使用了AlgorithmHelper作为加解密方法,MD5,DES,RSA。一直使用得好好的。
后来大部分手机升级成ARM64和IOS8系统之后,产品经常莫名其妙的崩溃。。。人也整崩溃了。
使用代码屏蔽法,最后定位到[NSData base64DataFromString:text]
IOS7以前因为NSData不直接支持base64的转换,所以有用自写方法拓展使NSData支持base64
后来上网找到,IOS7之后NSData有支持原生的base64转换。。。使用方法如下
- NSData* sampleData = [@"Some sample data" dataUsingEncoding:NSUTF8StringEncoding];
- NSString * base64String = [sampleData base64EncodedStringWithOptions:0];
- NSLog(@”Base64-encoded string is %@”, base64String); // prints ”U29tZSBzYW1wbGUgZGF0YQ==”
- NSData* dataFromString = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
- NSLog(@”String is %@”,[NSString stringWithUTF8String:[dataFromString bytes]]); // prints ”String is Some sample data”
于是替换之
果然没有崩溃了,继续观察看看会不会还有别的问题。IOS8+ARM64还有很多坑,希望大家不要中招哈。