Apple Watch 1.0 開發介紹 1.2 簡介 配置Xcode工程

WatchKit app須要一個現有的iOS app。在iOS app工程中,添加一個新的WatchKit app target,它包含了WatchKit app和WatchKit extension中須要的資源。他們會和iOS app一塊兒發佈到appstore。app

WatchKit app target提供了初始建立WatchKit app,glances,以及自定義通知界面的的全部資源。iOS模擬器能夠用來測試全部的界面和行爲。編輯器

注意:WatchKit開發須要iOS 8.2或更新的SDK。ide

 

添加WatchKit App到iOS工程測試

要建立WatchKit app必需要有一個iOS app。WatchKit app是在Xcode工程的不一樣的target中實現的,打包的時候和iOS app打在一塊兒。ui

1.在Xcode中,打開iOS app。spa

2. 選擇File->New->Target,卻換到Apple Watch那一頁。3d

3. 選擇WatchKit App,點 Next。調試

4. 若是計劃實現glance活着自定義通知界面,選擇合適的複選框。code

對於通知界面,建議選擇Include Notification Scene複選框,就算目前沒有計劃實現它。選擇那個複選框會添加調試通知界面的文件到工程。若是不選,之後須要手動建立那些文件。blog

5. 點完成

Xcode會配置WatchKit app和WatchKit extension的target而且會添加所需的文件到工程。Bundle ID會根據iOS app的bundle ID自動配置。三個包的基準ID(前綴)必需要匹配。若是改變了iOS app的bundle ID,必需要對應的修改其餘的bundle ID。

 

App Target 結構

添加WatchKit App target到工程同時也添加了兩個新的可執行文件而且更新了工程的編譯依賴關係。編譯iOS app會編譯三個可執行文件(iOS app, WatchKit extension以及WatchKit app)而後把它們打包到一塊兒。Xcode也添加了一個build scheme來只編譯調試WatchKit app。

下圖展現了iOS app和WatchKit。WatchKit app是打包在WatchKit extension中的,WatchKit extension打包在iOSapp中。當用戶在iPhone上安裝iOS app時,若是有匹配的Apple Watch,系統會推薦用戶安裝Watch Kit app。iOS會自動處理安裝過程。

 

 

編譯,運行,調試

建立WatchKit app時,Xcode會自動建立一個build scheme來運行和調試WatchKit app。使用這個scheme來在iOS模擬器或者設備上運行app。

對於包含glance或者自定義通知界面的app,須要配置其餘對應的scheme來測試這些界面。

爲glances和通知配置自定義的scheme

1.選擇現有的WatchKit app scheme。

2.在scheme菜單中, 選擇編輯scheme。

 

3.複製現有的WatchKit app scheme,取一個合適的名字。

好比,叫作「Glance - My WatchKit app」來表示運行和調試glance的scheme

4.編輯scheme時選在左側的Run

5.在info部分,爲新的scheme選擇合適的執行目標。

6. 保存關閉scheme編輯器。

建立通知界面的scheme時,在測試的時候指定一個JSON文件。

 

指定測試通知數據

在模擬器中調試自定義通知界面時,能夠在測試時指定一個JSON數據。使用scheme編輯器來指定使用哪一個數據文件。數據文件是用.apns後綴結尾的。

注意:若是在建立WatchKit app是選在的Include Notification Scene。Xcode默認提供了一個測試用的PushNotificaitonPayload.apns文件。(文件在WatchKit extension的support文件夾裏)也能夠後面手動建立。

PushNotificationPayload.apns文件包含了模擬遠程通知的大部分字段,也能夠本身添加字段。下圖展現了默認的JSON文件

 

JSON數據是被打包成dictionary而後在運行時傳遞給代碼的。因爲iOS模擬器不能爲iOS app註冊操做事件,也可使用JSON文件來指定顯示在界面上的操做按鈕。WatchKit模擬器能夠包含一組操做,每個表示一個要添加到界面的操做按鈕。每個數據包含下面的關鍵字:

  • title-操做按鈕的標題。這個關鍵字是必須的
  • identifier-這個字符串是傳遞給界面控制器的application:handleActionWithIdentifier:forLocalNotification:completoionHandler:或application:handleActionWithIdentifier:forRemoteNotification:completionHandler:方法的。這個關鍵字是必須的。
  • destructive-它的值是1或0,1表示按鈕以執行銷燬操做的按鈕形式顯示。0表示按鈕以普通方式顯示。這個字段是可選的。

用JSON數據測試通知界面,須要在scheme中選擇對應的數據文件。選擇scheme的類型爲通知時,Xcode會顯示選擇JSON數據的菜單。能夠爲不一樣的通知數據建立不一樣的scheme,也能夠在測試以前編輯shcme。

相關文章
相關標籤/搜索