shopins從 swift2.3升級到 Xcode9可以泡的 swift3.2步驟:
1.用Xcode8.3.3打开2.3版本,此时会提示转换 swift 版本,在弹出的面板中选择自己文件的代码,也就是不要選擇第三方的,其他的轉換成swift3的版本,不能自動轉換的就接著進行餘下代碼的轉換工作
2.移除Plugins,將相關代碼全部移除
3.用pod升級所用第三方庫 :升級到3.2版本
4.pod 升級完畢後,在 Edit 中選擇轉換第三方的Swift版本,轉換完成後(主要是第三方的轉換),不要 save代码,選擇 cancel,即不要自動轉換的代碼(不要更改第三方代碼),此時在 Xcode8.3.3運行會報錯,直接關閉Xcode
5. 關閉8.3.3,用 Xcode9打開項目 ,可以正常运行。
出现错误:
A:Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_GTMLogger", referenced from:
objc-class-ref in FirebaseMessaging(GIPReachability_d54098c5c1e1fdc4fca31a4803478650.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
B:.int32value
C:Xcode9 中 CryptoSwift代码错误
代码报错
解决:
A:直接pod安装 'Firebase/Messaging'
B: huan'chengintvalue
C:版本换到0.7.0,然后用 Xcode8转换到版本 swift3(不要 save,就是转换后,弹出来的面板不要选择更改代码)
升级3.2后运行项目发现加密不一致問題:
加密字符串出現問題
:let tmp_data = "\(json_str!)\(sha256_key!)".data(using: .utf8)
sha256_key一定要加!,否則因為可選,導致不一樣(2.3没有这个问题)。
出现错误:
A:Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_GTMLogger", referenced from:
objc-class-ref in FirebaseMessaging(GIPReachability_d54098c5c1e1fdc4fca31a4803478650.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
B:.int32value
C:Xcode9 中 CryptoSwift代码错误
代码报错
解决:
A:'Firebase/Messaging'
B: intvalue
C:版本换到0.7.0,然后用 Xcode8转换到版本 swift3(不要 save,就是转换后,弹出来的面板不要选择更改代码)