这两天使用Testflight测试App,发现到某个地方向后台请求数据的时候总是崩溃。开始我以为是不是苹果的某些认证出错了,反复的查,没有结果。今天我使用Xcode导出为ipa文件,然后从iTunes拖到自己的iphone上,发现同样有问题。这样,我就判断是某个地方的代码有了问题,经过不断的打成ipa包,然后拖到iphone,这样不断的测试,终于发现以下代码:
var base64Str = NSString(data: base64Data, encoding: NSUTF8StringEncoding) as String
将其替换为:
var base64_ns = NSString(data: base64Data, encoding: NSUTF8StringEncoding)
var base64Str = base64_ns?.substringFromIndex(0)
就好了。
本次问题的关键是,ipa文件和提交到appstore上的程序包都是release模式的,而我们平时使用的模式都是debug的(包括在真机上测试),而release和debug模式在个别的代码处理上显然是有区别的。