升级项目 swift:2.3 -> 3.2

来源:互联网 发布:php高并发是什么意思 编辑:程序博客网 时间:2024/06/07 02:32

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,就是转换后,弹出来的面板不要选择更改代码)

原创粉丝点击