這里主要介紹一下Xcode10 版本主要更新的內容。
隨着iOS12的發布,Xcode10已經可以從Mac App Store下載。
Xcode10包含了iOS12、watchOS 5、macOS10.14以及tvOS 12的SDK。另外,開發者可以從Xcode中看到當前Deployment Target最低為iOS8,所以后續開發過程中個人覺得可以忽略iOS8之前的一些特性。
要想安裝Xcode10,mac系統版本必須是macOS 10.13.6或者更高。這里對主要的一些變更做一些介紹(並非所有)。
棄用的東西
- C++庫libstdc++在Xcode8的時候已經棄用,在Xcode10以及之后將不再支持(iOS target)。C++工程必須遷移到libc++。除了修改c++標准庫的build setting,開發者還應該查看一下硬編碼的linker flags和target的依賴,刪除libstdc++(包括-lstdc++、-lstdc++6.0.9、libstdc++6.0.9.tbd和libstdc++6.0.9.dylib)的引用。項目中依賴的針對libstdc++構建的靜態歸檔文件也需要針對libc++重新構建。(也就是說我們需要檢查一下Target的Build Phases,里面的Link Binary With Libraries如果包含上述提到的庫,需要刪除,並且移除DrivedData)。
- 移除了對Subversion的支持。
- Xcode10是最后一個支持Swift3的版本。通過打開Project>Edit> Convert>To Current Swift Syntax..來將Swift3的代碼轉成swift4.2。
- macOS 10.14SDK不再支持32位程序。如果開發者需要編譯i386,使用Xcode9.4或者更早版本的Xcode。
設備
使用Xcode10運行老版本Xcode構建的WatchKit app,將會報錯:“TheWatchKit app has an invalid stub executable”。解決辦法:Clean build文件夾,然后從新運行。
已解決的問題
-
新建的文件.h默認包含NS_ASSUME_NONNULL_BEGIN 和NS_ASSUME_NONNULL_END。這兩個宏之間的代碼,所有指針對象都會假定為nonull,所以我們在開發的時候只需要指定那些nullable的對象即可。
新特性
-
NSData類型的數據可以直接導出來。例如一張圖片轉成data之后,在快速瀏覽框可以直接將data導出,最終保存成包含二進制的文件。
- 新建的schemes默認被所有用戶共享。如果想建一個私人的scheme,在Manage Schemes中不選擇Shared即可。
詳情路徑傳輸: https://www.cnblogs.com/zhanggui/p/9686155.html