蘋果系統(tǒng)包括:iOS、macOS、watchOS、tvOS。應用軟件的生命周期為:開發(fā)、上線、安裝、使用、卸載。這篇文檔將從應用生命周期的各個環(huán)節(jié)介紹蘋果系統(tǒng)對應用的管理機制,主要詳細介紹iOS和macOS,watchOS與tvOS由于用戶數(shù)量少,以及流程與iOS相似度較高,只作了簡單介紹。
iOS
一、開發(fā)
注冊賬號:
單純開發(fā)是不用付費的,使用模擬器就可以。如果要真機調試,或者提交appstore,需要申請開發(fā)者帳號。
需要提交:1、注冊一個蘋果賬號作為開發(fā)者賬號。2、個人或企業(yè)的姓名、地址、聯(lián)系方式等相應資料。3、能夠做美金結算的信用卡賬。4、支付99美金給蘋果公司。
另外,申請企業(yè)賬號需要提供DUNS(鄧白氏編碼)以及稅務等相應資料。D-U-N-S Number 是一組唯一的九位數(shù)字,用于檢查所在組織的身份和法人實體狀態(tài)。如果未擁有此識別碼,需要將信息提交給 Dun & Bradstreet,以獲取一個免費的 D-U-N-S Number。
Apple 開發(fā)者到期 App 是會下架,但是已經(jīng)安裝 App 的用戶,手機仍能使用App,App Store里面搜索不到。續(xù)費 Apple 開發(fā)者后,App 會在當天上線App Store。Apple開發(fā)者到期時不能轉讓App。
開發(fā)工具:
蘋果應用開發(fā)需要使用mac系統(tǒng)下的Xcode,使用Objective-C和Swift語言。Xcode由蘋果公司開發(fā)的集成開發(fā)環(huán)境,免費對用戶使用,可以開發(fā)iOS、macOS、watchOS、tvOS四個系統(tǒng)應用。
二、上線
應用開發(fā)完成后,如要發(fā)布上架App store,大致經(jīng)過以下8個步驟。
1. 登錄Apple開發(fā)者中心網(wǎng)站,選擇certificates,Identifiers and profiles,在APP IDs選項里注冊一個APP ID,用于標識一個或一組APP,需要填寫APP的描述和需要注冊的服務功能。
2.創(chuàng)建開發(fā)證書,證書分為iOS Development(開發(fā)證書)和iOS Distribution(發(fā)布證書),開發(fā)證書用于真機調試,有一年使用期限。發(fā)布證書用于APP的發(fā)布。
3.配置iOS Provisoning Profiles(debug)描述文件,Provisoning Profiles是蘋果簽名認證的Plist文件,列舉了開發(fā)證書、APP ID、以及授權運行設備的UDID(為一個設備的唯一標識)。
4.在Xcode中進行應用證書注冊并打包APP。在工程里將Provisoning Profiles配置導入,完成后就可以打包APP了,導出APP包。
5.真機調試。可以在授權的設備上進行真機調試,將打包導出的APP包安裝于設備上,安裝時系統(tǒng)會對開發(fā)證書進行認證,成功后app會安裝在設備上,可以在設備上對app進行測試。
6.真機測試沒問題后,可以對APP進行上架發(fā)布。這里需要進入開發(fā)者中心創(chuàng)建發(fā)布證書,并配置Provisoning Profiles 描述文件。
7.需要在itunes connect 上創(chuàng)建本應用的項目。在開發(fā)者中心的itunes connect管理界面創(chuàng)建一個新APP項目,填寫APP的相關信息包括描述、銷售范圍、版本信息、關鍵詞等。
8.提交審核。需要提供一個測試賬號用于審核人員進行測試。應用提交之后審核人員對應用進行審核。審核針對安全、性能、業(yè)務、設計、法律五個層面。
安全:不包含不良內容,不造成人身安全隱患、數(shù)據(jù)安全、不得在指定容器范圍外讀寫數(shù)據(jù)、不具有特殊權限
性能:APP完成度、硬件兼容性、能耗、占用系統(tǒng)資源量、網(wǎng)絡性能
業(yè)務:付款、廣告合乎標準
設計:不涉抄襲、有價值、
法律:隱私、知識產權
蘋果官方要求,開發(fā)和上線應用必須通過Xcode這一集成開發(fā)工具,也就是只能在mac電腦下完成。但如果想在windows環(huán)境下完成開發(fā),也可以通過一些其它途徑。借助LBuilder、HBuilder、APICLoud、APPCan等工具,可以把網(wǎng)站打包成APP,之后通過上架輔助軟件Appuploader進行windows下APP的上架。Appuploader是ios上架輔助工具,可以直接得到.p12和.mobileprovision證書文件,上傳ipa到App store,打破了上架ios只能在蘋果電腦用Xcode的限制,使用費用100元/年。
三、安裝
在 iOS 出來之前,在主流操作系統(tǒng)(Mac/Windows/Linux)上開發(fā)和運行軟件是不需要簽名的,軟件隨便從哪里下載都能運行,導致平臺對第三方軟件難以控制,盜版流行。蘋果希望解決這樣的問題,在 iOS 平臺對第三方 APP 有絕對的控制權,一定要保證每一個安裝到 iOS 上的 APP 都是經(jīng)過蘋果官方允許的,怎樣保證呢?就是通過簽名機制。
ios 正規(guī)的應用安裝方式分為三種:
1.通過APP store安裝
對于通過APP store安裝的應用,iOS為了確保所有的應用程序沒有被修改,要求必須使用蘋果頒發(fā)的證書對可執(zhí)行代碼進行簽名。開發(fā)者使用蘋果頒發(fā)的發(fā)布證書簽名后,將應用題叫道APPstore審核,審核成功后,蘋果使用其私鑰對程序進行簽名。用戶從APPstore下載安裝應用,iOS調用系統(tǒng)進程獲取provisioning profile文件,對應用程序進行證書校驗。
2.開發(fā) App 時直接把開發(fā)中的應用安裝進手機進行調試,即在上線時的真機調試
開發(fā)時安裝APP,它有兩個需求,1)安裝包不需要傳到蘋果服務器,可以直接安裝到手機上。2)蘋果必須對這里的安裝有控制權,包括a.經(jīng)過蘋果允許才可以這樣安裝。b.不能被濫用導致非開發(fā)app也能被安裝。蘋果使用雙層簽名的機制,
1)在你 Mac 開發(fā)機器生成一對公私鑰,這里稱為公鑰L,私鑰L。
2)蘋果自己有固定的一對公私鑰,跟上面 AppStore 例子一樣,私鑰在蘋果后臺,公鑰在每個 iOS 設備上。這里稱為公鑰A,私鑰A。
3)把公鑰 L 傳到蘋果后臺,用蘋果后臺里的私鑰 A 去簽名公鑰 L。得到一份數(shù)據(jù)包含了公鑰 L 以及其簽名,把這份數(shù)據(jù)稱為證書。
4)在蘋果后臺申請 AppID,配置好設備 ID 列表和 APP 可使用的權限,再加上第③步的證書,組成的數(shù)據(jù)用私鑰 A 簽名,把數(shù)據(jù)和簽名一起組成一個 Provisioning Profile 文件,下載到本地 Mac 開發(fā)機。
5)在開發(fā)時,編譯完一個 APP 后,用本地的私鑰 L 對這個 APP 進行簽名,同時把第④步得到的 Provisioning Profile 文件打包進 APP 里,文件名為,把 APP 安裝到手機上。
6)在安裝時,iOS 系統(tǒng)取得證書,通過系統(tǒng)內置的公鑰 A,去驗證的數(shù)字簽名是否正確,里面的證書簽名也會再驗一遍。
7)確保了里的數(shù)據(jù)都是蘋果授權以后,就可以取出里面的數(shù)據(jù),做各種驗證,包括用公鑰 L 驗證APP簽名,驗證設備 ID 是否在 ID 列表上,AppID 是否對應得上,權限開關是否跟 APP 里的 Entitlements 對應等。
3.企業(yè)內部分發(fā),可以直接安裝企業(yè)證書簽名后的 APP
企業(yè)內部應用,即只在企業(yè)部門和員工內部使用、不對外公開的應用。蘋果提供了專門的In-House證書用來發(fā)布這種應用,可以分發(fā)給任意的手機,只要通過一個URL即可下載安裝,不用上傳到App Store審核。In-House應用,有時需要根據(jù)部門需求進行版本的快速迭代,因為不需要App Store審核,所以可以做到隨時修改,隨時發(fā)布,節(jié)省了大量的時間。
在打包安裝時同樣需要創(chuàng)建證書,證書類型為In-House型,之后創(chuàng)建配置文件(Distribution Provisioning Profiles),過程和其他證書創(chuàng)建過程類似。在Xcode中導入配置文件,打包程序,可以導出ipa和plist文件。Plist文件中包含ipa的URL、安裝時顯示的 icon 的url、bundle id、版本號、安裝前的提示信息。將plist文件上傳至服務器,企業(yè)員工在safari瀏覽器中輸入鏈接即可安裝。Safari操作的具體流程是:
1)Safari解析輸入的字符串,找到plist文件
2)根據(jù)plist文件里面提供的信息下載并安裝ipa包,還會訪問大小圖標,大小圖標在ipa包正在下載時顯示,當下載完畢后顯示程序自帶的圖標
3)下載安裝后,如果想打開程序還需要在手機 設置-<通用-<描述文件與設備管理,在“企業(yè)級應用”分組下,點擊 信任 開發(fā)者的證書里面選擇相應的證書信任后,方可打開程序。
綜上,3種安裝方式歸根結底,都是通過驗證安裝程序的provisioning profile文件。安裝應用程序時,Provisioning Profile 文件被拷貝到 iOS 設備中,運行該 iOS App 的設備通過它來認證安裝的程序。Provisioning Profile 把AppID、簽名證書、設備授權這些信息全部打包在一起,方便我們在調試和發(fā)布程序打包時使用。這樣,只要在不同的情況下選擇不同的 Provisioning Profile 文件就可以了。
除了在正規(guī)途徑下安裝應用以外,通過“打破”原有權限,獲取更高權限,可以實現(xiàn)脫離官方平臺,自由安裝第三方的應用,即我們口中的“越獄”。
iOS系統(tǒng)具有封閉性,通過代碼簽名機制限制未經(jīng)簽名的代碼在iOS系統(tǒng)中執(zhí)行。用戶不能訪問系統(tǒng)資源,也無權修改,只能使用蘋果頒發(fā)證書的正規(guī)途徑的應用或程序接口完成系統(tǒng)允許的操作。越獄后,用戶可以獲得權限訪問與修改系統(tǒng)文件,繼而獲得更多的權限,完成之前未被iOS允許的功能。越獄的原理是通過漏洞。至少需要2個漏洞,第一個漏洞用來完成專有代碼執(zhí)行,第二個漏洞用來使內核的安全措施失效,提升權限。
越獄之后安裝應用可不通過APP store,有一些越獄者制作的類似APP store的應用安裝商店,APP store默認安裝位置為/var/mobile/Applications目錄里,越獄后可安裝在根目錄下,所以墻紙、主題、鈴聲等一些個性化應用在越獄后可以得到安裝。
四、使用
iOS 程序 5 種狀態(tài):
1. Not running:
應用還沒有啟動,或者應用正在運行但是途中被系統(tǒng)停止
:
當前應用正在前臺運行,但是并不接收事件(當前或許正在執(zhí)行其它代碼)。一般每當應用要從一個狀態(tài)切換到另一個不同的狀態(tài)時,中途過渡會短暫停留在此狀態(tài)。唯一在此狀態(tài)停留時間比較長的情況是:當用戶鎖屏時,或者系統(tǒng)提示用戶去響應某些(諸如電話來電、有未讀短信等)事件的時候。
:
當前應用正在前臺運行,并且接收事件。這是應用正在前臺運行時所處的正常狀態(tài)。
:
應用處在后臺,并且還在執(zhí)行代碼。大多數(shù)將 要進入Suspended狀態(tài)的應用,會先短暫進入此狀態(tài)。然而,對于請求需要額外的執(zhí)行時間的應用,會在此狀態(tài)保持更長一段時間。另外,如果一個應用要求啟動時直接進入后臺運行,這樣的應用會直接從Notrunning狀態(tài)進入Background狀態(tài),中途不會經(jīng)過Inactive狀態(tài)。比如沒有界面的應用。注此處并不特指沒有界面的應用,其實也可以是有界面的應用,只是如果要直接進入background狀態(tài)的話,該應用界面不會被顯示。
:
應用處在后臺,并且已停止執(zhí)行代碼。系統(tǒng)自動的將應用移入此狀態(tài),且在此舉之前不會對應用做任何通知。當處在此狀態(tài)時,應用依然駐留內存但不執(zhí)行任何程序代碼。當系統(tǒng)發(fā)生低內存告警時,系統(tǒng)將會將處 于Suspended狀態(tài)的應用清除出內存以為正在前臺運行的應用提供足夠的內存。
應用啟動過程:
1、執(zhí)行main函數(shù)
2、在此方法中調用UIApplicationMain
2.1 創(chuàng)建UIApplication對象(UIApplication對象是應用程序的象征,一個UIApplication對象就代表一個應用程序。每一個應用都有自己的UIApplication對象,而且是單例的,如果試圖在程序中新建一個UIApplication對象,那么將報錯提示。一個iOS程序啟動后創(chuàng)建的第一個對象就是UIApplication對象,且只有一個。利用UIApplication對象,能進行一些應用級別的操作。)
創(chuàng)建UIApplication的delegate對象。(UIApplication Delegate的作用是當應用程序發(fā)出一系列系統(tǒng)事件如來電或鎖屏等,做出相應的反應。新建完項目,都有個帶有“AppDelegate”字眼的類,它就是UIApplication的代理,AppDelegate默認已經(jīng)遵守了UIApplicationDelegate協(xié)議,已經(jīng)是UIApplication的代理。系統(tǒng)事件如程序降將要啟動、程序啟動完成、程序進入后臺、程序進入前臺、程序退出等。)
開啟消息循環(huán)
3、delegate對象開始監(jiān)聽系統(tǒng)事件
3.1 app啟動完成后會調用delegate對象的程序加載完成的方法
如果app的plist設置了main storyboard 會創(chuàng)建UIWindow對象(如 果沒有設置則不創(chuàng)建)
創(chuàng)建main storyboard中綁定的controller對象(stroyboard中箭 頭指向的控制器)
設置給window對象的rootViewController
3.5 設置window對象可見
屏幕響應順序
iOS和安卓系統(tǒng)具有不同的屏幕響應順序,IOS對屏幕的響應順序是:觸摸→媒體→服務→架構,而安卓是:程序→框架→屏幕顯示資源→架構。所以在視覺效果上,iOS會有更流暢的感覺。
后臺管理機制
從iOS 3開始,蘋 果為iPhone引進了push notification,不啟動應用也 能收到推送消息,原理是 消息由APNS(Apple Push Notification Service, Apple Push服務器)統(tǒng)一管 理,隨著iOS 4的發(fā)布,iOS也開始有了 多任務功能,當你點擊H o m e鍵后,當前 程序轉入后臺(iOS 4之前按Home鍵就 直接干掉應用了),后臺應用以墓碑的形 式(退出前的狀態(tài))保存在內存中,用戶 可以快速恢復。但是蘋果對后臺的限制非 常嚴格,只有一些特殊應用可以在后臺 真正運行,比如音頻播放類、VoIP類、 newsstand、位置服務等。
如果不做任何配置的話,你的應用最 多只能在后臺運行5秒,之后就會被掛起 (存于內存但不運行),如果你配置了后 臺運行(如需下載),大概在594秒( 分鐘)時進程停止,程序同樣也會被掛 起,一旦系統(tǒng)需要內存了,最早的后臺進 程就會被殺掉以釋放內存。
從 iOS 7 開始, 一旦手機鎖屏, 后臺應用將會很快被暫停, 之后當系統(tǒng)被喚醒時,那些暫停的后臺應用會一起繼續(xù)運行?,F(xiàn)在的iOS后臺管理很智能, 他會記憶你每天什么時段打開什么應用, 經(jīng)過一段時間后, 他會在適當時間喚醒相應的應用。iOS7新增三種后臺模式:
Baxkground Fetch 后臺應用刷新
iOS 7 之前的應用必須在打開時才能聯(lián)網(wǎng)獲取數(shù)據(jù), 而它可以讓應用在后臺直接獲取數(shù)據(jù)。
Silent Remote Notifications 靜默推送喚醒
iOS 7 之前當收到消息后, 只有打開應用才能從APNS獲取推送的具體消息, 現(xiàn)在在收到消息后, 會自動喚醒相應的APP , 讓該APP在后臺獲取消息, 再通知用戶。
Background Transfer Servce 后臺傳輸
以前一旦下載被轉移到后臺最多只能持續(xù)運行549秒(分鐘), 現(xiàn)在所有的下載任務會交給系統(tǒng)獨立的進程去完成, 不管APP在前臺、掛起還是被殺掉, 下載都在繼續(xù)進行。
自動清理機制
iOS系統(tǒng)在安裝應用或者使用過程中存儲空間不足時,會自動清理一些應用的緩存以釋放空間。
APP 更新推送
當app有新版本時,可以在APP store里更新應用。APP在安裝的時候,會在數(shù)據(jù)庫里appid對應的列表下新增版本號的關鍵字。用戶在【更新】界面刷新操作后,發(fā)送請求查詢用戶表,并關聯(lián)APP信息表獲取到用戶安裝過的每一款APP的最新版本號列表。然后把最新版本號列表中的app版本號,與本地的app版本進行比對,如果最新版本號列表中的版本號大于本地版本號,則會有更新提示。
五、卸載
iOS 文件目錄結構:
/:為根目錄
Applications: 存放所有的系統(tǒng) APP 和來自 Cydia 的 APP,不包括從 App Store 下載的APP
Developer: 供開發(fā)者使用
Library:系統(tǒng)資源,用戶設置
System:系統(tǒng)的重要組成部分
User:用戶目錄,實際指向 /var/mobile
bin:存放用戶級可執(zhí)行文件,如 ls、mv 等
dev:設備文件
etc:存放系統(tǒng)腳本、hosts 配置、SSH 配置文件等
sbin:存放系統(tǒng)二進制文件
usr:用戶工具和程序
var:變量文件,在正常運行的系統(tǒng)中其內容不斷變化的文件
應用都是安裝在/var/mobile/Applications目錄下,且應用沙盒機制,每一個應用分配自身的存儲空間,不能越界訪問。應用程序沙盒目錄下有三個文件夾Documents、Library(下面有Caches和Preferences目錄)、tmp。Documents:保存應用運行時生成的需要持久化的數(shù)據(jù)iTunes會自動備份該目錄。Library/Caches:一般存儲的是緩存文件,例如圖片視頻等,此目錄下的文件不會再應用程序退出時刪除,在手機備份的時候,iTunes不會備份該目錄。Library/Preferences:保存應用程序的所有偏好設置iOS的Settings(設置),iTunes會自動備份該文件目錄下的內容。tmp:臨時文件目錄,在程序重新運行的時候,和開機的時候,會清空tmp文件夾。
iOS 中 app 對本地存儲只能訪問到自己的根目錄,再往上就沒有權限了。在刪除應用時,app自身的存儲空間的根目錄會直接刪除,在機制內不會留下殘留文件。
Mac OS
Mac OS是基于Unix內核的圖形化操作系統(tǒng);由蘋果自行開發(fā),不對外銷售,一般情況下在普通PC上無法安裝,只安裝于蘋果的設備中。mac OS雖然也對應用有較嚴格的管理機制,但與手機端iOS系統(tǒng)相比,用戶具有更多的權限。
一、開發(fā)
mac OS應用的開發(fā)過程與iOS的開發(fā)類似,需要付費注冊開發(fā)者賬號,同樣使用Xcode作為開發(fā)工具。
二、發(fā)布
應用開發(fā)完成后,發(fā)布方式與iOS下有所不同。除了在app store線上發(fā)布,還可以在平臺以外發(fā)布。mac開發(fā)下的證書有5種:
開發(fā)證書:
(1)Mac Development:用于開發(fā)和測試的證書,跟iOS development證書一樣;運行在指定設備上需要把設備的UUID添加到devices里面去。
發(fā)布證書:
Mac App Store
(2)Mac App Distribution:這個用于 Xcode 自己把.app 文件上傳到 Mac App Store,具體的上線過程與iOS應用類似。
(3)Mac Installer Distribution:這是用于開發(fā)者自己把.app 文件打包成 .pkg 文件,再用 Xcode 自帶的 App Application Loader 上傳到 Mac App Store ,可用于上傳到store前模擬真實的store環(huán)境。
Developer ID
(4)Developer ID Application:這個用于開發(fā)者使用開發(fā)者帳號簽名,導出一個線下發(fā)布版本的 .app 文件,但是由于脫離了蘋果的 Mac App Store,還是加上許可協(xié)議打包成 .pkg 文件再發(fā)布比較好,給用戶一個決定是否安裝的機會。這就要用到第5個證書。
(5)Developer ID Installer:用于開發(fā)者打包,同時加上開發(fā)者帳號簽名,打包生成一個.pkg的安裝包,可以裝到任意一臺Mac電腦上執(zhí)行安裝過程。
5種證書,開發(fā)證書用于開發(fā)和測試,發(fā)布證書就對應著app store和線下兩種發(fā)布形式。根據(jù)需要的發(fā)布形式創(chuàng)建對應的證書,證書的創(chuàng)建過程可參考iOS應用的證書創(chuàng)建,發(fā)布的具體過程可以按照官方文檔和Xcode的提示一步步來。當然如果不想用證書也不擔心用戶拒絕來源不明的應用的話,也可以不用任何證書簽名打包應用,用默認的簽名方式就可以。
三、安裝
mac OS上對于應用的不同發(fā)布形式,也有不同的安裝方法,可以分為三種。
1.對于app store上的應用,即上一部分的(2)(3)發(fā)布方式,用戶可以直接登錄自己的蘋果賬戶,進行購買或者獲取資源下載,對軟件的購買在平臺完成,蘋果會抽取一部分分成。app store上的應用經(jīng)過蘋果內部人員的審核和測試,本身會具有更高的完整度、質量和運行穩(wěn)定性。但是國內應用的很多軟件app store都沒有,需要線下的方式進行安裝。
2.第二種安裝方式是線下的.app格式的應用的安裝,即上一部分的(4)發(fā)布方式。這種用戶可以自行從網(wǎng)上搜索下載源,一般下下來的安裝文件是一個.dmg格式的磁盤映像,dmg 是蘋果的壓縮鏡像文件,類似于 Windows 下的 ISO,雙擊打開后會給系統(tǒng)掛上一個類似移動硬盤的虛擬磁盤,安裝完后可以右鍵彈出。它是 macOS 應用軟件通用的打包格式,里面一般包含“應用程序名.app”的圖標和一個應用程序文件夾(/Applications)快捷方式。直接將圖標拖曳至應用程序文件夾,即可完成安裝,非??旖?。
3.第三種是.pkg安裝包的安裝,即上一部分的(5)發(fā)布方式。.pkg屬于系統(tǒng)級軟件的安裝程序,類似于windows中的.exe安裝程序,會閱讀許可協(xié)議并選擇安裝位置、安裝內容,一般會修改系統(tǒng)配置,權限較高,需要sudo授權。
對于一些來源不明或沒有證書的應用,在打開安裝程序時有時會出現(xiàn)“文件已損壞,打不開”。這是由于系統(tǒng)的安全機制對來源不明的軟件的限制??梢酝ㄟ^在命令行里修改權限,在系統(tǒng)偏好設置的安全性與隱私設置里,改成允許任何來源的應用。
有時還會提示“來自身份不明的開發(fā)者”,這時同樣在偏好設置的安全性與隱私設置里,可以看到要打開的應用被阻止的提示,點擊“仍要打開”即可。
蘋果的應用為.app的格式,既是一個包,包含應用的全部內容,可以右鍵顯示包內容,對里面的文件或配置進行修改(具有比iOS更高的權限),同時也是一個可執(zhí)行文件,安裝在Applications文件夾后會自動出現(xiàn)在系統(tǒng)的Launchpad(啟動臺)里。
四、卸載
mac上對于應用的卸載,由于安裝方式不同,卸載方式也不同。app store里安裝的應用,類似于iOS,在Launchpad(啟動臺)里長按圖標,點叉號即可卸載。線下的app store平臺外自己安裝的應用極少數(shù)會自帶卸載程序,多數(shù)直接在Applications文件夾里右鍵刪除即可。只是對于.pkg安裝包安裝的應用,由于有時具有較高權限,可能會修改系統(tǒng)配置,所以刪除應用后有時可能會有卸載殘留,可以通過第三方卸載軟件或手動刪除。
watchOS
watchOS是蘋果公司基于iOS 系統(tǒng)開發(fā)的一套使用于Apple watch的手表操作系統(tǒng)。它的應用的開發(fā)與上線與iOS相同,用戶只能通過App store來安裝應用。在2019年6月之前,對應用程序的安裝不能在apple watch上直接進行,只能結合iphone使用。連接之后在iPhone上打開Apple Watch應用程序,來安裝需要的表上應用。安裝完成后,會首先在iPhone上面顯示。需要說明的是,Apple Watch APP應用程序都是必須要配合iPhone使用的,因此所有安裝到Apple Watch上面的應用程序,都會同時安裝到iPhone上。2019年6月之后發(fā)布的新的watchOS系統(tǒng),自帶app store,不用再連接iphone來安裝應用,可以直接在app store里獲取安裝。
卸載應用也是兩種方式,既可以在apple watch內直接卸載,也可以與iPhone配對,通過iPhone里的apple watch應用來管理手表應用。
tvOS
tvOS是蘋果公司專門為Apple TV設計的操作系統(tǒng),基于 iOS。2016年3月發(fā)布了 tvOS 9.2 操作系統(tǒng)。Apple TV是蘋果公司推出的一款高清電視機頂盒產品,用戶可以通過Apple TV在線收看電視節(jié)目,也可以通過Airplay功能,將iPad、iPhone、iPod和PC中的照片、視頻和音樂傳輸?shù)诫娨暽线M行播放。tvOS也可以安裝一些應用,具有獨立的應用生態(tài),通過自帶的app store進行搜索和安裝。
tvOS應用的開發(fā)與發(fā)布也與iOS類似,需要注冊成為開發(fā)者,使用官方的開發(fā)工具xcode進行開發(fā),開發(fā)與發(fā)布同樣需要創(chuàng)建證書。具體過程均與iOS相同。
在國內目前用戶不多,不能直接收看國內的有線衛(wèi)視節(jié)目,需要聯(lián)網(wǎng)安裝app來收看電視臺。
蘋果系統(tǒng)與其他系統(tǒng)比較
iOS與macOS對比
兩個系統(tǒng)都是蘋果自主研發(fā)的系統(tǒng),但我們也可以看出,macOS的用戶比起iOS擁有更廣的權限,可以訪問系統(tǒng)資源,讀寫系統(tǒng)目錄、系統(tǒng)文件,也可以訪問應用內部目錄,對其配置文件進行修改,還可以下載安裝來自任何來源的應用。相比之下,iOS的系統(tǒng)生態(tài)就更加封閉,使用者無法查看系統(tǒng)文件資源,也不能訪問應用內部,只能通過應用的接口來使用和管理應用。而對于廣大蘋果手機用戶而言,他們所使用的唯一的應用安裝方式就是通過官方的APP store。
iOS系統(tǒng)應用與安卓對比
具有安裝來源不同、用戶權限不同、運行機制不同、后臺機制不同、響應處理指令權限不同幾大區(qū)別。相比之下優(yōu)點:1)所有上線應用經(jīng)過審核,具有更高的穩(wěn)定性、流暢度、安全指數(shù)、優(yōu)化性,且可以保護版權,安卓應用開發(fā)者隨意開發(fā),參差不齊。2)應用具有較低的權限,可以更好的保護用戶隱私,相比之下,安卓許多應用如不開放權限則不讓用戶使用。3)通過優(yōu)先響應屏幕和獨特的對內存管理的方式使其具有更流暢的運行效果。4)iOS軟硬件垂直整合,只運行在蘋果設備上,安卓可以運行在多種設備上,所以iOS上的應用有更好的兼容性。
缺點:1)安卓系統(tǒng)開放,且開發(fā)門檻低,所以資源多,開發(fā)者多,創(chuàng)新也多。2)安卓系統(tǒng)用戶權限大,所以操作更靈活,也更加個性化。
windows與macOS應用對比
開發(fā)門檻不同:mac應用開發(fā)成本大,windows程序任意開發(fā)者均可以免費開發(fā)。
安裝來源不同:windows可以隨意安裝程序,mac的可以通過app平臺或平臺之外,均會驗證證書,質量更高。
安裝方法不同:windows安裝包進行安裝,mac可以應用商店直接獲取,或者直接復制app到應用程序,或者安裝包安裝。
應用文件結構不同,windows除了安裝根目錄,還會寫入注冊表信息,通過exe執(zhí)行文件啟動。mac的app文件既是整個應用包,同時是啟動入口。
卸載方式不同:windows通過卸載程序,mac直接刪除。
蘋果系統(tǒng)中的安全機制
Apple ID雙重認證
首次登錄一臺新設備時,除輸入密碼外,還需要在信任設備上的授權才可以登錄。輸入驗證碼后,即確認信任這臺新設備。由于只輸入密碼不再能夠訪問帳戶,因此雙重認證顯著增強了 Apple ID 以及所有通過 Apple 儲存的個人信息的安全性。登錄成功后,系統(tǒng)將不會再次要求信任設備的驗證,除非完全退出登錄帳戶、抹掉設備數(shù)據(jù)或出于安全原因而需要更改密碼。受信任設備是已使用雙重認證登錄的設備,可以是裝有 iOS 9 及更高版本的 iPhone、iPad 或 iPod touch 或者裝有 OS X El Capitan 及更高版本的 Mac。受信任電話號碼是指可通過短信或自動語音電話接收驗證碼的號碼。您必須至少驗證一個受信任電話號碼才能注冊雙重認證。
代碼簽名
蘋果也是通過代碼簽名來保證每一個安裝到iOS上的APP都是經(jīng)過蘋果官方允許的,防止盜版軟件、病毒入侵、靜默安裝等。蘋果也是通過代碼簽名來保證每一個安裝到iOS上的APP都是經(jīng)過蘋果官方允許的,防止盜版軟件、病毒入侵、靜默安裝等。
可信引導
iOS設備開機后采用一種稱為可信引導的方式進入系統(tǒng)。引導過程中,安全只讀內存 (SecureROM) 是首先被引導的部分,其中嵌入了根證書 (Root Certificate)用以檢查下一步所加載組件的RSA簽名。 在隨后的每個步驟中,系統(tǒng)校驗下一步驟所要加載組件的 RSA 簽名。這一信任鏈 (Chain of Trust) 保證了系統(tǒng)啟動過 程中的所有組件沒有被破壞和修改。
沙盒機制
沙盒也叫沙箱,英文standbox,其原理是通過重定向技術,把程序生成和修改的文件定向到自身文件夾中。在沙盒機制下,每個應用程序都有自己的存儲空間,程序之間的文件夾不能互相訪問。iOS系統(tǒng)為了保證系統(tǒng)安全,采用了這種機制。iOS 應用程序在安裝時,會創(chuàng)建屬于自己的沙盒文件,應用程序不能直接訪問其他應用程序的沙盒文件,當應用程序需要向外部請求或接收數(shù)據(jù)時,都需要經(jīng)過權限認證,否則,無法獲取到數(shù)據(jù)。應用程序中所有的非代碼文件都保存在沙盒中,比如圖片、聲音、屬性列表,sqlite數(shù)據(jù)庫和文本文件等。
數(shù)據(jù)加密
iOS4 及以后的系統(tǒng)使用數(shù)據(jù)加密機制來保護文件系 統(tǒng)中的系統(tǒng)和數(shù)據(jù)分區(qū)。系統(tǒng)和數(shù)據(jù)分區(qū)中的數(shù)據(jù)將由一 個基于硬件設備的密鑰進行加密。在 iPhone3GS 以后的設 備上,該密鑰存儲于一個AES加密加速硬件上。這個基 于硬件的密鑰不能被 CPU 所訪問,只有在加解密時才能 由該加速器獲取。通過這種機制,直接從硬盤上被取走的 原始數(shù)據(jù)就無法被正確解密。同時,數(shù)據(jù)加密機制還提供 了多種加密策略供應用程序選擇。應用程序可以選擇對一 些敏感文件使用NSFileProtectionComplete 策略而不是默認 的 NSFileProtectionNone 策略加密數(shù)據(jù)。
瘋狂肆虐的電腦病毒幾乎都是針對Windows的,由于MAC的架構與Windows不同,沙盒機制、使用人數(shù)少、研究成本大、對應用安裝的管控力度,所以很少受到病毒的襲擊。
(正文已結束)
推薦閱讀:雅迪戰(zhàn)警x7
免責聲明及提醒:此文內容為本網(wǎng)所轉載企業(yè)宣傳資訊,該相關信息僅為宣傳及傳遞更多信息之目的,不代表本網(wǎng)站觀點,文章真實性請瀏覽者慎重核實!任何投資加盟均有風險,提醒廣大民眾投資需謹慎!