博客園客戶端UAP開發隨筆 – App也需要物流前的打包


 

想起來一個笑話:唐僧一行千辛萬苦來到佛祖面前,准備取經,佛祖輕聲問了一句:汝等帶U盤了嗎?師徒4人立刻昏倒在地。好吧,扯遠了,不過是想告訴大家准備工作一定要到位。

Universal App 的打包發布其實與傳統的 Windows Phone / Windows Store App 項目並無太大不同,但是鑒於總有人會在這些步驟中遇到問題,而且即使是發布過幾個應用的開發者也不例外,所以對這個看起來比較繁瑣的過程做一個小結還是必要的。

 

打包前的准備工作

 

1. 修改編譯模式

w8_00

在調試程序時,我們通常會選擇 debug 模式,但是發布時不要忘記切換到 Release 模式,否則程序打包后連驗證程序都不會執行,更不用說上傳到應用商店了。為了保證程序在所有設備上都運行,我們選擇 Any CPU,這樣就可以保證我們的 UAP 運行在所有可以運行的平台上(包括基於 ARM 架構的 Windows RT 平板和基於 x86 架構的平板,例如 Surface Pro)了。

 

 

2. 修改 Manifest 文件

 

Manifest 文件記錄了項目中的一些基礎元數據,包括項目名稱,申請的權限,項目的 Logo 和發布者信息等等,只有這些信息都填寫完整並且准確,打包的文件才能保證通過上傳時的自動驗證。

w8_8

在項目中我們可以找到本項目的 appxmanifest 文件。

 

w8_0

我們還可以通過菜單中的選項找到修改 Manifest 文件的入口。

 

 

下面我們來逐個標簽檢查 Manifest 文件的內容是否完整。

w8_1

 

在 Application 標簽頁中,我們需要填寫項目的基本信息,並確認是否需要修改對應的屏幕旋轉方向和在鎖屏時如何通知用戶。

 

wp_1

與 Windows 項目不同的是, Windows Phone 項目還需要用戶填寫是否允許將 App 安裝到 SD 卡的選項。

 

w8_2

在 Visual Assets 標簽頁中,我們需要將所有用到的 Logo 圖片做好對應,一般來說,如果在 Assets 文件夾中圖片的命名規范正確的話,這里可以自動檢測並將圖片自動載入的。

 

w8_3

需要注意的是,Badge Logo 的圖片要求比較嚴格,要求只能有白色和透明兩種顏色,哪怕有一個像素出現別的顏色,都會在自動驗證程序時檢測到並且不予通過,所以修改這幾個圖片的時候要務必小心,確認只包含白色和透明色。

 

w8_4

在 Capabilities 頁面,我們需要填寫項目申請的權限,例如本項目必須在網絡下運行,所以必須申請 Internet 權限。最關鍵的注意事項是,任何 Windows App,如果申請了網絡權限,就必須在 Setting 菜單中添加隱私聲明 (Privacy Statement)的入口,否則會不能通過人工審核階段。關於如何添加隱私聲明,請參考之前的博客:博客園客戶端(Universal App)開發隨筆 - Setting Page的實現方法與經驗

 

 

wp_2

Windows Phone 的項目還需要額外填寫對於設備傳感器的申請,如果在 App 中應用到了陀螺儀,磁場傳感器,NFC,前/后攝像頭等資源,需要在這里予以聲明。

 

 

w8_5

在 Declarations 標簽頁中,我們要對 App 使用的其他資源進行聲明,例如博客園項目使用到了后台任務,就需要在這里聲明后台任務的入口。

 

w8_6

如果 App 使用到了特殊的通知事件,可以在 Content URIs 頁面進行聲明,需要注意的是,Windows 8.1 僅支持 https 協議的安全頁面,不再支持 http 協議。

 

w8_7

Packaging 頁面非常關鍵,這里的任何一項填錯都會導致項目通不過上傳時的自動審核。不過好在如果我們在下面的步驟中選擇了將項目對應到商店中的 App,那么這個頁面中的大部分項目都會自動填好。而如果我們選擇僅僅打包,委托別人幫忙發布,那么這些信息就一定要填寫完整。本頁面中需要填寫的信息,可以在對應的開發者賬戶頁面找到信息。

另一個注意事項是最后的 Generate app bundle 選項。如果選擇了 always,那么如果之前的 Visual Assets 中有對應的多種尺寸的圖片,那么打包時就會生成一個對應多種尺寸設備的整包(bundle)。這樣以后再更新項目,也必須上傳一個 bundle,否則就不能通過上傳審核。這也意味着,Assets 文件夾里的圖片只能增加,不能再減少。

 

 

w8_9

當然以上的所有項目,我們都可以右鍵點擊 manifest 文件,選擇 view code 進行修改或更新。貌似這也是一個更適合 geek 的方法。

 

開始打包

Manifest 文件修改完之后,我們就可以開始正式的打包工作了。

w8_0

這里我們選擇 Create App Packages

 

w8_10

在這里,有兩種選擇,選擇Yes是直接登陸 Microsoft Dev 賬戶,將項目和商店中的 App 進行綁定,這樣 Manifest 文件中關於開發者的信息會自動更新到 Microsoft Dev 賬戶的對應信息。這種方式適用於自己發布自己項目的情況。

選擇No是不登陸賬戶,僅僅打包。這種情況適用於委托第三方幫忙發布項目的情況,或者是想先打個包出來給別人共享用作測試,測試完成后,你就可以直接用這個測試包提交應用了,這樣更符合一般的工作流程,避免你的測試包和最后提交商店的包不一致。

我們強烈建議選擇No,使用第二種方式。 在下一篇隨筆中會詳細說到如何提交應用。

w8_11

我們先選擇第一種,登陸 Microsoft Dev 賬戶。

 

w8_12

登陸以后,該開發者之前提交過的項目就都顯示出來,我們也可以為新項目重新預留一個名字。

 

w8_13

為項目選擇版本信息,輸出位置,是否打包生成和 CPU 等信息。

 

w8_14

都填寫完之后,就可以打包項目了。打包完成后,會顯示項目位置,並會提醒開發者為項目執行驗證程序(Windows App Certification Kit)。由於上傳后服務器會首先執行這個程序對項目進行初次自動驗證,如果有不合規范的地方就不予通過,所以為了確保上傳的成功性,我們通常會在本機先執行一次驗證程序。

 

w8_16

w8_17

 

如果驗證程序在本機通過,那么就可以向商店上傳應用了。由於篇幅所限,我們會在將來的文章中繼續介紹商店上傳的注意事項。

 

總結

本文按照流程介紹了 Universal App 在上傳商店前的打包步驟,並分析了 Windows 和 Windows Phone App打包時的細小區別和容易導致上傳失敗的注意事項。

 

我們的已經發布的應用和代碼可以在下面找到:

Windows Phone Store App link:

http://www.windowsphone.com/zh-cn/store/app/博客園-uap/500f08f0-5be8-4723-aff9-a397beee52fc

 

Windows Store App link:

http://apps.microsoft.com/windows/zh-cn/app/c76b99a0-9abd-4a4e-86f0-b29bfcc51059

 

GitHub open source link:

https://github.com/MS-UAP/cnblogs-UAP

 

MSDN Sample Code:

https://code.msdn.microsoft.com/CNBlogs-Client-Universal-9c9692d1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM