2015-06-22 58 views
20

我一直在擺弄Xcode 7一段時間了,我知道它只支持Swift 2,並且沒有辦法在Xcode 7中支持Swift 1.0或1.2。這很好。Xcode 7支持手錶OS1和OS2

現在來看看WatchOS,我可以在Xcode 7中分別爲WatchOS1和WatchOS2分別設置兩個目標,以便我可以同時支持?

我一直在尋找到兩個表的目標和iOS應用目標的構建設置部署目標設置,但我只能看到WatchOS2在列表中,這樣

  1. 我可以支持兩個目標之一對於WatchOS1 & WatchOS2分別在Xcode 7中?如果是的話,我應該在某個地方安裝WatchOS1 SDK?或 這完全不可能,如果不是爲什麼?

  2. 如果這兩個目標可以支持我怎樣才能防止兩個目標的源副本,因爲兩個操作系統在建築方面顯著 差異。

  3. 此外,由於引入WatchConnectivity框架的的iOS應用程序對應也會有一些變化,如何保持這種 兩個目標?

我很困惑,我需要迅速作出決定,任何幫助表示讚賞。

+0

@Droppy但是在iOS目標中,我能夠在列表中看到較低版本的iOS。爲什麼這樣? – satheeshwaran

+0

@Droppy是的我也一樣認爲,但如果我需要支持這兩個,手指交叉! – satheeshwaran

回答

26

可以支持watchOS 1個應用在Xcode 7 您還可以支持watchOS 2個應用在Xcode 7

如果你想支持watchOS 1和2 watchOS,那麼你將需要有不同的目標,每個OS(由於架構上的差異)

對於watchOS 1的應用程序,添加一個新的目標,然後從左邊的Apple關注部分,然後從列表中點擊WatchKit應用爲watchOS 1

watchOS 1 App

對於watchOS 2個應用程序,添加一個新的目標,並選擇watchOS>應用部分,然後點擊列表中的WatchKit應用選項。

watchOS 2 App

幾件事情要注意有關使watchOS 1應用在Xcode 7(測試版1)...

因爲我沒有上運行iOS 8.3的iPhone 6我的測試,我的手錶運行watchOS 1.0.1,我需要將我的部署目標更改爲iOS 8.3,但請注意,您希望在項目級別執行此操作,而不僅僅是目標級別(以便擴展也設置爲8.3而不僅僅是主應用程序),否則它不會讓你部署到真正的設備上。

由於在Xcode 7 Beta 1的一個已知的問題,一個watchOS 1的應用程序將無法安裝與下面的錯誤一個真正的看,如果你配對的手機是64位:

Jun 20 17:25:08 Liams-iPhone companionappd[271] <Notice>: (Error) WatchKit: validateWatchKitApplicationInfoDictionary, invalid Info.plist key 'UIRequiredDeviceCapabilities' 

這是因爲Xcode中7在編譯時將arm64添加到UIRequiredDeviceCapabilities info.plist密鑰中,即使不適用於watchOS 1擴展。

您可以通過設置爲DEBUG模式創建僅有NO的活動架構。

Xcode 7 Known Issue

希望幫助

+0

感謝利亞姆的詳細的答案,但我有幾個問題,請選擇我更新的問題。 – satheeshwaran

+0

您究竟如何測試watchos1應用程序?因爲我沒有看到一個選項來下載watchos1模擬器 – Jatin

+0

我不知道模擬器,但我知道你可以在運行watchOS 2.x的物理設備上運行它 – liamnichols

4

你可以同時擁有一個iOS的9 iPhone和watchKit擴展一個watchOS 2應用程序或爲iOS 8設備。

我會說如果你還沒有製作一個WatchKit應用程序(如在watchOS 1中),那麼製作一個watchOS 2應用程序並嘗試創建和維護一個watchOS 1應用程序是非常沒有生產力的......只是爲了理智的目的,跳上船去觀看OS 2!

+0

不@Daniel我已經有一個WatchKit 1應用程序我想在發佈日期之前表態。 – satheeshwaran

+2

因此,手錶工程師鼓勵我在WWDC不要將我的watchOS 1應用程序「遷移」到2,而是爲watchOS 2應用程序創建一個新目標並讓它們共存。 – Daniel

+0

好吧有道理,但有關如何爲這兩個目標拼湊代碼的想法? – satheeshwaran