Xcode 10 & swift 4.0

升級了Xcode,又要吐血了,唉。。。

代碼又出來好多編譯錯(cuò)誤,Objc的工程還好一點(diǎn),swift就很慘。

1,Objc工程/Swift工程,編譯時(shí)會(huì)出:

:-1: Multiple commands produce '/Users/xxx/Library/Developer/Xcode/DerivedData/Abc-eevxfmncsazylmbfntnfpktbmfgw/Build/Products/Debug-iphoneos/abc.app/Info.plist':
1) Target 'abc' (project 'Abc') has copy command from '/Users/xxx/Desktop/Abc/Info.plist' to '/Users/xxx/Library/Developer/Xcode/DerivedData/Abc-eevxfmncsazylmbfntnfpktbmfgw/Build/Products/Debug-iphoneos/abc.app/Info.plist'
2) Target 'abc' (project 'Abc') has process command with output '/Users/xxx/Library/Developer/Xcode/DerivedData/Abc-eevxfmncsazylmbfntnfpktbmfgw/Build/Products/Debug-iphoneos/abc.app/Info.plist'

為什么呢?google了一圈之后,大家都說是因?yàn)橹貜?fù)拷貝了Info.plist的原因。有兩個(gè)解決方法:
1)修改編譯方式:
File->Workspace Settings->Build System,改為Legacy Build System。默認(rèn)為New.
2)刪除拷貝了多次的plist文件:
Target->Build Phases -> Copy Bundle Resources 找到Info.plist,刪掉
也有可能需要?jiǎng)h除Copy Pods Resources中的Info.plist(我沒遇到這個(gè))

注意:上面兩個(gè)方法任意一個(gè)都可以成功編譯Xcode 9的工程。

在不"Clean Build Folder"的情況下,再把Info.plist加入工程Resources也不會(huì)有什么問題,這只是打ipa包的時(shí)候需要打包進(jìn)入的文件列表而已。

2,Xcode 10 里沒有SVN了... 只有Git
這下我可慘了,只能用svnX了,好在有GUI,不然只在命令行處理就太麻煩了

3,提示了好多:

Showing Recent Messages
/Users/xxx/Desktop/ipp/Pods/ObjectMapper/Sources/EnumOperators.swift:35:13: Invalid redeclaration of '<-'

Showing Recent Messages
/Users/xxx/Desktop/ipp/Pods/ObjectMapper/Sources/FromJSON.swift:44:13: Invalid redeclaration of 'optionalBasicType(_:object:)'

有可能是因?yàn)榉椒膯栴}。
我的問題比較蠢,因?yàn)樵谑褂肅ocoapods加入ObjectMapper時(shí),沒有指定版本,如果指定3.3版本就可以解決上述問題:

pod 'ObjectMapper', '~>3.3' 

4,如果選擇了swift 4.2,會(huì)提示:AVAudioSession.setCategory 問題
提示:Swift不支持setCategory,但是如果使用4.2的setCategory,又會(huì)無法兼容iOS 10.0以下系統(tǒng)。google上有提示需要用Objc來寫這段代碼,因?yàn)镺bjc不會(huì)提示『不支持』。我沒嘗試解決,索性退回到4.0了...

5,補(bǔ)充:
今天發(fā)現(xiàn)一個(gè)很久不碰的工程編輯不過了(Xcode 10.3)。
開始提示pod文件中限定的swift太低(3.2),需要是4.0,4.2,5.0,于是改成4.2.
然后編譯出錯(cuò):Invalid redeclaration of 'replaceSubrange(_:with:)' 和 Invalid redeclaration of ‘removeSubrange’.
升級RealmSwift得到解決:

#pod update RealmSwift --verbose --no-repo-update 
Installing Realm 3.7.6 (was 3.0.1)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容