添加一個 App Clip Target
參考:
官方視頻(推薦下載 "開發者"觀看,有字幕,英語大牛請忽略,這里只放了一個,其他視頻查看相關內容即可):https://developer.apple.com/videos/play/wwdc2020/10174/
大佬總結:https://github.com/Binlogo/WWDC20-Track/tree/master/FrutaBuildingAFeatureRichAppWithSwiftUI
流程圖:https://mubu.com/doc/6gmq5SaGQIo
App Clip要求對應的應用至少提供與App Clip相同的功能,對於完整的應用和App Clip,你通常使用相同的Xcode項目。如果你開始一個新的應用程序項目,首先用Xcode創建一個新的iOS項目。如果你想添加一個App Clip到你現有的應用,打開它的Xcode項目。然后,添加一個App Clip Target到Xcode項目。
使用App Clip模板添加一個新的Target
選擇產品名稱,為app clip選擇適用選項,然后單擊Finish。
Xcode為你選擇的選項創建所有需要的文件,並為你的app clip添加一個target:
構建和運行app clip及其測試的方案。要構建並運行完整的應用程序,請繼續使用現有的方案。
一個名為按需安裝能力的新功能。
父應用程序標識符授權。
app clip的應用標識符,使用完整的應用的應用標識符作為前綴,后面跟着一個字符串。例如,如果你的完整應用程序的應用標識符是$(AppIdentifierPrefix)com.example.MyApp,app clip的應用標識符是$(AppIdentifierPrefix)com.example.MyApp.clip。
_XCAppClipURL環境變量作為app clip方案的一部分,允許您測試調用。
支持與完整應用程序相同的設備,不包括macOS。
此外,Xcode為app目標創建了一個新的構建階段,該階段將app clip嵌入到app中。
在向app clip目標添加自己的代碼之前,請在模擬器或設備上運行app clip。此時,app clip顯示了一個空白的屏幕,因為您還沒有添加任何代碼和資產。
添加關聯域權利
用戶啟動應用程序片段通過調用URL調用應用程序片段,或者如果用戶安裝應用程序替換應用程序片段,充分應用。無論你選擇哪個調用支持,您必須添加相關的域名權利的應用和應用視頻目標:
1、在Xcode中打開項目;然后,在您的項目設置中,啟用關聯域功能來添加關聯域權利。
2、對於啟動app clip或完整應用程序的每個URL,使用以下模式將其域添加到關聯域功能:appclips:<fully qualified domain>。例如,添加appclips:example.com。
( 原文如下:
-
Open your project in Xcode; then, in your project settings, enable the Associated Domains capability to add the
Associated Domains Entitlement
. -
For each URL that launches your app clip or full app, add its domain to the Associated Domains capability using this pattern:
appclips:<fully qualified domain>
. For example, addappclips:example.com
.
)
除了增加相關的域授權,你必須改變你的服務器,讓系統在啟動之前驗證你的app clip。有關更多信息,請參見配置App剪輯的啟動體驗。(PS:
在App Store Connect中,在一個新的App版本的頁面上,您必須配置一個默認的App clip體驗,並為App clip卡提供以下元數據:
標題圖片
提供更多有關應用程序剪輯信息的副標題
用戶點擊動作按鈕就可以啟動應用程序剪輯
有關設計指南,請參見人機界面指南。
)
有關相關域的一般信息,請參見下面對服務器和Xcode項目的更改。
添加Code and Assets
app clip使用與完整應用相同的框架,向app clip target添加代碼或資源就像對其他target一樣。創建新的源文件和資產,或使用現有的源文件和資產作為成員的app clip的目標。為了確保項目的可維護性,整個app和app clip都應該盡可能多地共享代碼:
如果您創建了一個新的應用程序,在創建app clip時要記住,並遵循促進模塊化代碼庫的最佳實踐。例如,創建可重用組件,將其打包為Swift包,並在完整的應用程序和app clip中使用這些包。有關更多信息,請參見使用本地包組織代碼。
如果你在現有的應用程序中添加了一個app clip,請留出時間重構它的代碼庫,使其模塊化,並在app clip和整個應用程序之間共享代碼,以避免代碼重復。
將共享資產添加到新的資產目錄中,並在完整的應用程序和app clip中使用該目錄。有關更多信息,請參見有關資產目錄。
Use Active Compilation Conditions 使用活動編譯條件
當你在app clip和完整的app之間共享代碼時,你可能會遇到一些無法在app clip中使用app代碼的情況。在這些情況下,可以利用活動編譯條件構建設置,在該設置中可以聲明排除代碼的條件。
在你的app clip target的構建設置,並為活動編譯條件的構建設置創建一個新值;例如,APPCLIP。
App Clip 的 Build Settings - Active Compilation Conditions 添加自定義編譯參數:`APPCLIP`
然后在共享代碼中添加一個簽入,在需要的時候,排除你不想在app剪輯中使用的代碼。
下面的代碼檢查添加到活動編譯條件構建設置的APPCLIP值。
#if !APPCLIP // Code you don't want to use in your app clip. #else // Code your app clip may access. #endif
現在在模擬器或設備上構建、運行和調試app clip。
請注意
在開發過程中,在本地或TestFlight中測試url,如測試app clip的啟動體驗中所述。
對服務器和Xcode項目進行更改
在系統顯示app clip card或允許調用app clip之前,它驗證app clip的配置和調用URL。如果它不能執行驗證,它不會顯示app clip card,app clip不會啟動。要讓系統驗證你的app clip,你需要對你的web服務器和Xcode項目進行更改。
首先,向你的服務器添加一個蘋果應用網站關聯文件,就像在你的應用中支持關聯域中描述的那樣。如果您之前向服務器添加了蘋果應用程序站點關聯文件,請將appclips鍵的條目添加到現有文件中。
下面的代碼顯示了要添加的內容。注意apps鍵的值是一個只有一個入口的數組——app clip的app標識符。
{ "appclips": { "apps": ["ABCED12345.com.example.MyApp.Clip"] } ... }
最后,在Xcode中,將你網站的域名添加到app和app clip的相關域名中。
配置並響應調用
系統使用你在App Store中配置的url來啟動你的app clip。因此,識別啟動aapp clip的url,在啟動時響應它們,並在app Store Connect中注冊它們對於創建app clip至關重要。有關更多信息,請參見配置app clip的啟動體驗和對調用的響應。
最后
app clip需要一個相應的應用程序。當你准備發布你的app clip時,提交它作為應用程序存檔的一部分。請注意,你的app clip必須在提交審核后通過app Store審核流程。