當前位置:係統粉 >   IT資訊 >   蘋果資訊 >  蘋果係統iOS、macOS應用管理機製

蘋果係統iOS、macOS應用管理機製

時間:2020-02-23 來源:互聯網 瀏覽量:

蘋果係統包括:iOS、macOS、watchOS、tvOS。應用軟件的生命周期為:開發、上線、安裝、使用、卸載。這篇文檔將從應用生命周期的各個環節介紹蘋果係統對應用的管理機製,主要詳細介紹iOS和macOS,watchOS與tvOS由於用戶數量少,以及流程與iOS相似度較高,隻作了簡單介紹。iOS一、開發注冊賬號:

單純開發是不用付費的,使用模擬器就可以。如果要真機調試,或者提交appstore,需要申請開發者帳號。

蘋果係統iOS、macOS應用管理機製(1)

需要提交:1、注冊一個蘋果賬號作為開發者賬號。2、個人或企業的姓名、地址、聯係方式等相應資料。3、能夠做美金結算的信用卡賬。4、支付99美金給蘋果公司。

另外,申請企業賬號需要提供DUNS(鄧白氏編碼)以及稅務等相應資料。D-U-N-S Number 是一組唯一的九位數字,用於檢查所在組織的身份和法人實體狀態。如果未擁有此識別碼,需要將信息提交給 Dun & Bradstreet,以獲取一個免費的 D-U-N-S Number。

Apple 開發者到期 App 是會下架,但是已經安裝 App 的用戶,手機仍能使用App,App Store裏麵搜索不到。續費 Apple 開發者後,App 會在當天上線App Store。Apple開發者到期時不能轉讓App。

開發工具:

蘋果應用開發需要使用mac係統下的Xcode,使用Objective-C和Swift語言。Xcode由蘋果公司開發的集成開發環境,免費對用戶使用,可以開發iOS、macOS、watchOS、tvOS四個係統應用。

二、上線

應用開發完成後,如要發布上架App store,大致經過以下8個步驟。

1. 登錄Apple開發者中心網站,選擇certificates,Identifiers and profiles,在APP IDs選項裏注冊一個APP ID,用於標識一個或一組APP,需要填寫APP的描述和需要注冊的服務功能。

2.創建開發證書,證書分為iOS Development(開發證書)和iOS Distribution(發布證書),開發證書用於真機調試,有一年使用期限。發布證書用於APP的發布。

3.配置iOS Provisoning Profiles(debug)描述文件,Provisoning Profiles是蘋果簽名認證的Plist文件,列舉了開發證書、APP ID、以及授權運行設備的UDID(為一個設備的唯一標識)。

4.在Xcode中進行應用證書注冊並打包APP。在工程裏將Provisoning Profiles配置導入,完成後就可以打包APP了,導出APP包。

5.真機調試。可以在授權的設備上進行真機調試,將打包導出的APP包安裝於設備上,安裝時係統會對開發證書進行認證,成功後app會安裝在設備上,可以在設備上對app進行測試。

6.真機測試沒問題後,可以對APP進行上架發布。這裏需要進入開發者中心創建發布證書,並配置Provisoning Profiles 描述文件。

7.需要在itunes connect 上創建本應用的項目。在開發者中心的itunes connect管理界麵創建一個新APP項目,填寫APP的相關信息包括描述、銷售範圍、版本信息、關鍵詞等。

8.提交審核。需要提供一個測試賬號用於審核人員進行測試。應用提交之後審核人員對應用進行審核。審核針對安全、性能、業務、設計、法律五個層麵。

安全:不包含不良內容,不造成人身安全隱患、數據安全、不得在指定容器範圍外讀寫數據、不具有特殊權限

性能:APP完成度、硬件兼容性、能耗、占用係統資源量、網絡性能

業務:付款、廣告合乎標準

設計:不涉抄襲、有價值、

法律:隱私、知識產權

蘋果官方要求,開發和上線應用必須通過Xcode這一集成開發工具,也就是隻能在mac電腦下完成。但如果想在windows環境下完成開發,也可以通過一些其它途徑。借助LBuilder、HBuilder、APICLoud、APPCan等工具,可以把網站打包成APP,之後通過上架輔助軟件Appuploader進行windows下APP的上架。Appuploader是ios上架輔助工具,可以直接得到.p12和.mobileprovision證書文件,上傳ipa到App store,打破了上架ios隻能在蘋果電腦用Xcode的限製,使用費用100元/年。

三、安裝

在 iOS 出來之前,在主流操作係統(Mac/Windows/Linux)上開發和運行軟件是不需要簽名的,軟件隨便從哪裏下載都能運行,導致平台對第三方軟件難以控製,盜版流行。蘋果希望解決這樣的問題,在 iOS 平台對第三方 APP 有絕對的控製權,一定要保證每一個安裝到 iOS 上的 APP 都是經過蘋果官方允許的,怎樣保證呢?就是通過簽名機製。

ios 正規的應用安裝方式分為三種:

1.通過APP store安裝

對於通過APP store安裝的應用,iOS為了確保所有的應用程序沒有被修改,要求必須使用蘋果頒發的證書對可執行代碼進行簽名。開發者使用蘋果頒發的發布證書簽名後,將應用題叫道APPstore審核,審核成功後,蘋果使用其私鑰對程序進行簽名。用戶從APPstore下載安裝應用,iOS調用係統進程獲取provisioning profile文件,對應用程序進行證書校驗。

2.開發 App 時直接把開發中的應用安裝進手機進行調試,即在上線時的真機調試

開發時安裝APP,它有兩個需求,1)安裝包不需要傳到蘋果服務器,可以直接安裝到手機上。2)蘋果必須對這裏的安裝有控製權,包括a.經過蘋果允許才可以這樣安裝。b.不能被濫用導致非開發app也能被安裝。蘋果使用雙層簽名的機製,

1)在你 Mac 開發機器生成一對公私鑰,這裏稱為公鑰L,私鑰L。

2)蘋果自己有固定的一對公私鑰,跟上麵 AppStore 例子一樣,私鑰在蘋果後台,公鑰在每個 iOS 設備上。這裏稱為公鑰A,私鑰A。

3)把公鑰 L 傳到蘋果後台,用蘋果後台裏的私鑰 A 去簽名公鑰 L。得到一份數據包含了公鑰 L 以及其簽名,把這份數據稱為證書。

4)在蘋果後台申請 AppID,配置好設備 ID 列表和 APP 可使用的權限,再加上第③步的證書,組成的數據用私鑰 A 簽名,把數據和簽名一起組成一個 Provisioning Profile 文件,下載到本地 Mac 開發機。

5)在開發時,編譯完一個 APP 後,用本地的私鑰 L 對這個 APP 進行簽名,同時把第④步得到的 Provisioning Profile 文件打包進 APP 裏,文件名為embedded.mobileprovision,把 APP 安裝到手機上。

6)在安裝時,iOS 係統取得證書,通過係統內置的公鑰 A,去驗證embedded.mobileprovision的數字簽名是否正確,裏麵的證書簽名也會再驗一遍。

7)確保了embedded.mobileprovision裏的數據都是蘋果授權以後,就可以取出裏麵的數據,做各種驗證,包括用公鑰 L 驗證APP簽名,驗證設備 ID 是否在 ID 列表上,AppID 是否對應得上,權限開關是否跟 APP 裏的 Entitlements 對應等。

蘋果係統iOS、macOS應用管理機製(2)

3.企業內部分發,可以直接安裝企業證書簽名後的 APP

企業內部應用,即隻在企業部門和員工內部使用、不對外公開的應用。蘋果提供了專門的In-House證書用來發布這種應用,可以分發給任意的手機,隻要通過一個URL即可下載安裝,不用上傳到App Store審核。In-House應用,有時需要根據部門需求進行版本的快速迭代,因為不需要App Store審核,所以可以做到隨時修改,隨時發布,節省了大量的時間。

在打包安裝時同樣需要創建證書,證書類型為In-House型,之後創建配置文件(Distribution Provisioning Profiles),過程和其他證書創建過程類似。在Xcode中導入配置文件,打包程序,可以導出ipa和plist文件。Plist文件中包含ipa的URL、安裝時顯示的 icon 的url、bundle id、版本號、安裝前的提示信息。將plist文件上傳至服務器,企業員工在safari瀏覽器中輸入鏈接即可安裝。Safari操作的具體流程是:

1)Safari解析輸入的字符串,找到plist文件

2)根據plist文件裏麵提供的信息下載並安裝ipa包,還會訪問大小圖標,大小圖標在ipa包正在下載時顯示,當下載完畢後顯示程序自帶的圖標

3)下載安裝後,如果想打開程序還需要在手機 設置->通用->描述文件與設備管理,在“企業級應用”分組下,點擊 信任 開發者的證書裏麵選擇相應的證書信任後,方可打開程序。

綜上,3種安裝方式歸根結底,都是通過驗證安裝程序的provisioning profile文件。安裝應用程序時,Provisioning Profile 文件被拷貝到 iOS 設備中,運行該 iOS App 的設備通過它來認證安裝的程序。Provisioning Profile 把AppID、簽名證書、設備授權這些信息全部打包在一起,方便我們在調試和發布程序打包時使用。這樣,隻要在不同的情況下選擇不同的 Provisioning Profile 文件就可以了。

除了在正規途徑下安裝應用以外,通過“打破”原有權限,獲取更高權限,可以實現脫離官方平台,自由安裝第三方的應用,即我們口中的“越獄”。

iOS係統具有封閉性,通過代碼簽名機製限製未經簽名的代碼在iOS係統中執行。用戶不能訪問係統資源,也無權修改,隻能使用蘋果頒發證書的正規途徑的應用或程序接口完成係統允許的操作。越獄後,用戶可以獲得權限訪問與修改係統文件,繼而獲得更多的權限,完成之前未被iOS允許的功能。越獄的原理是通過漏洞。至少需要2個漏洞,第一個漏洞用來完成專有代碼執行,第二個漏洞用來使內核的安全措施失效,提升權限。

越獄之後安裝應用可不通過APP store,有一些越獄者製作的類似APP store的應用安裝商店,APP store默認安裝位置為/var/mobile/Applications目錄裏,越獄後可安裝在根目錄下,所以牆紙、主題、鈴聲等一些個性化應用在越獄後可以得到安裝。

四、使用

iOS 程序 5 種狀態:

1. Not running:

應用還沒有啟動,或者應用正在運行但是途中被係統停止

2.Inactive:

當前應用正在前台運行,但是並不接收事件(當前或許正在執行其它代碼)。一般每當應用要從一個狀態切換到另一個不同的狀態時,中途過渡會短暫停留在此狀態。唯一在此狀態停留時間比較長的情況是:當用戶鎖屏時,或者係統提示用戶去響應某些(諸如電話來電、有未讀短信等)事件的時候。

3.Active:

當前應用正在前台運行,並且接收事件。這是應用正在前台運行時所處的正常狀態。

4.Background:

應用處在後台,並且還在執行代碼。大多數將 要進入Suspended狀態的應用,會先短暫進入此狀態。然而,對於請求需要額外的執行時間的應用,會在此狀態保持更長一段時間。另外,如果一個應用要求啟動時直接進入後台運行,這樣的應用會直接從Notrunning狀態進入Background狀態,中途不會經過Inactive狀態。比如沒有界麵的應用。注此處並不特指沒有界麵的應用,其實也可以是有界麵的應用,隻是如果要直接進入background狀態的話,該應用界麵不會被顯示。

5.Suspended:

應用處在後台,並且已停止執行代碼。係統自動的將應用移入此狀態,且在此舉之前不會對應用做任何通知。當處在此狀態時,應用依然駐留內存但不執行任何程序代碼。當係統發生低內存告警時,係統將會將處 於Suspended狀態的應用清除出內存以為正在前台運行的應用提供足夠的內存。

應用啟動過程:

1、執行main函數

2、在此方法中調用UIApplicationMain

2.1 創建UIApplication對象(UIApplication對象是應用程序的象征,一個UIApplication對象就代表一個應用程序。每一個應用都有自己的UIApplication對象,而且是單例的,如果試圖在程序中新建一個UIApplication對象,那麼將報錯提示。一個iOS程序啟動後創建的第一個對象就是UIApplication對象,且隻有一個。利用UIApplication對象,能進行一些應用級別的操作。)

2.2 創建UIApplication的delegate對象。(UIApplication Delegate的作用是當應用程序發出一係列係統事件如來電或鎖屏等,做出相應的反應。新建完項目,都有個帶有“AppDelegate”字眼的類,它就是UIApplication的代理,AppDelegate默認已經遵守了UIApplicationDelegate協議,已經是UIApplication的代理。係統事件如程序降將要啟動、程序啟動完成、程序進入後台、程序進入前台、程序退出等。)

2.3 開啟消息循環

3、delegate對象開始監聽係統事件

3.1 app啟動完成後會調用delegate對象的程序加載完成的方法

3.2 如果app的plist設置了main storyboard 會創建UIWindow對象(如 果沒有設置則不創建)

3.3 創建main storyboard中綁定的controller對象(stroyboard中箭 頭指向的控製器)

3.4 設置給window對象的rootViewController

3.5 設置window對象可見

蘋果係統iOS、macOS應用管理機製(3)

屏幕響應順序

iOS和安卓係統具有不同的屏幕響應順序,IOS對屏幕的響應順序是:觸摸→媒體→服務→架構,而安卓是:程序→框架→屏幕顯示資源→架構。所以在視覺效果上,iOS會有更流暢的感覺。

後台管理機製

從iOS 3開始,蘋 果為iPhone引進了push notification,不啟動應用也 能收到推送消息,原理是 消息由APNS(Apple Push Notification Service, Apple Push服務器)統一管 理,隨著iOS 4的發布,iOS也開始有了 多任務功能,當你點擊H o m e鍵後,當前 程序轉入後台(iOS 4之前按Home鍵就 直接幹掉應用了),後台應用以墓碑的形 式(退出前的狀態)保存在內存中,用戶 可以快速恢複。但是蘋果對後台的限製非 常嚴格,隻有一些特殊應用可以在後台 真正運行,比如音頻播放類、VoIP類、 newsstand、位置服務等。

如果不做任何配置的話,你的應用最 多隻能在後台運行5秒,之後就會被掛起 (存於內存但不運行),如果你配置了後 台運行(如需下載),大概在594秒(9.9 分鍾)時進程停止,程序同樣也會被掛 起,一旦係統需要內存了,最早的後台進 程就會被殺掉以釋放內存。

從 iOS 7 開始, 一旦手機鎖屏, 後台應用將會很快被暫停, 之後當係統被喚醒時,那些暫停的後台應用會一起繼續運行。現在的iOS後台管理很智能, 他會記憶你每天什麼時段打開什麼應用, 經過一段時間後, 他會在適當時間喚醒相應的應用。iOS7新增三種後台模式:

Baxkground Fetch 後台應用刷新

iOS 7 之前的應用必須在打開時才能聯網獲取數據, 而它可以讓應用在後台直接獲取數據。

Silent Remote Notifications 靜默推送喚醒

iOS 7 之前當收到消息後, 隻有打開應用才能從APNS獲取推送的具體消息, 現在在收到消息後, 會自動喚醒相應的APP , 讓該APP在後台獲取消息, 再通知用戶。

Background Transfer Servce 後台傳輸

以前一旦下載被轉移到後台最多隻能持續運行549秒(9.9分鍾), 現在所有的下載任務會交給係統獨立的進程去完成, 不管APP在前台、掛起還是被殺掉, 下載都在繼續進行。

自動清理機製

iOS係統在安裝應用或者使用過程中存儲空間不足時,會自動清理一些應用的緩存以釋放空間。

蘋果係統iOS、macOS應用管理機製(4)

APP 更新推送

當app有新版本時,可以在APP store裏更新應用。APP在安裝的時候,會在數據庫裏appid對應的列表下新增版本號的關鍵字。用戶在【更新】界麵刷新操作後,發送請求查詢用戶表,並關聯APP信息表獲取到用戶安裝過的每一款APP的最新版本號列表。然後把最新版本號列表中的app版本號,與本地的app版本進行比對,如果最新版本號列表中的版本號大於本地版本號,則會有更新提示。

五、卸載

iOS 文件目錄結構:

/:為根目錄

Applications: 存放所有的係統 APP 和來自 Cydia 的 APP,不包括從 App Store 下載的APP

Developer: 供開發者使用

Library:係統資源,用戶設置

System:係統的重要組成部分

User:用戶目錄,實際指向 /var/mobile

bin:存放用戶級可執行文件,如 ls、mv 等

dev:設備文件

etc:存放係統腳本、hosts 配置、SSH 配置文件等

sbin:存放係統二進製文件

usr:用戶工具和程序

var:變量文件,在正常運行的係統中其內容不斷變化的文件

應用都是安裝在/var/mobile/Applications目錄下,且應用沙盒機製,每一個應用分配自身的存儲空間,不能越界訪問。應用程序沙盒目錄下有三個文件夾Documents、Library(下麵有Caches和Preferences目錄)、tmp。Documents:保存應用運行時生成的需要持久化的數據iTunes會自動備份該目錄。Library/Caches:一般存儲的是緩存文件,例如圖片視頻等,此目錄下的文件不會再應用程序退出時刪除,在手機備份的時候,iTunes不會備份該目錄。Library/Preferences:保存應用程序的所有偏好設置iOS的Settings(設置),iTunes會自動備份該文件目錄下的內容。tmp:臨時文件目錄,在程序重新運行的時候,和開機的時候,會清空tmp文件夾。

iOS 中 app 對本地存儲隻能訪問到自己的根目錄,再往上就沒有權限了。在刪除應用時,app自身的存儲空間的根目錄會直接刪除,在機製內不會留下殘留文件。

Mac OS

Mac OS是基於Unix內核的圖形化操作係統;由蘋果自行開發,不對外銷售,一般情況下在普通PC上無法安裝,隻安裝於蘋果的設備中。mac OS雖然也對應用有較嚴格的管理機製,但與手機端iOS係統相比,用戶具有更多的權限。

一、開發

mac OS應用的開發過程與iOS的開發類似,需要付費注冊開發者賬號,同樣使用Xcode作為開發工具。

二、發布

應用開發完成後,發布方式與iOS下有所不同。除了在app store線上發布,還可以在平台以外發布。mac開發下的證書有5種:

開發證書:

(1)Mac Development:用於開發和測試的證書,跟iOS development證書一樣;運行在指定設備上需要把設備的UUID添加到devices裏麵去。

發布證書:

Mac App Store

(2)Mac App Distribution:這個用於 Xcode 自己把.app 文件上傳到 Mac App Store,具體的上線過程與iOS應用類似。

(3)Mac Installer Distribution:這是用於開發者自己把.app 文件打包成 .pkg 文件,再用 Xcode 自帶的 App Application Loader 上傳到 Mac App Store ,可用於上傳到store前模擬真實的store環境。

Developer ID

(4)Developer ID Application:這個用於開發者使用開發者帳號簽名,導出一個線下發布版本的 .app 文件,但是由於脫離了蘋果的 Mac App Store,還是加上許可協議打包成 .pkg 文件再發布比較好,給用戶一個決定是否安裝的機會。這就要用到第5個證書。

(5)Developer ID Installer:用於開發者打包,同時加上開發者帳號簽名,打包生成一個.pkg的安裝包,可以裝到任意一台Mac電腦上執行安裝過程。

5種證書,開發證書用於開發和測試,發布證書就對應著app store和線下兩種發布形式。根據需要的發布形式創建對應的證書,證書的創建過程可參考iOS應用的證書創建,發布的具體過程可以按照官方文檔和Xcode的提示一步步來。當然如果不想用證書也不擔心用戶拒絕來源不明的應用的話,也可以不用任何證書簽名打包應用,用默認的簽名方式就可以。

蘋果係統iOS、macOS應用管理機製(5)

三、安裝

mac OS上對於應用的不同發布形式,也有不同的安裝方法,可以分為三種。

1.對於app store上的應用,即上一部分的(2)(3)發布方式,用戶可以直接登錄自己的蘋果賬戶,進行購買或者獲取資源下載,對軟件的購買在平台完成,蘋果會抽取一部分分成。app store上的應用經過蘋果內部人員的審核和測試,本身會具有更高的完整度、質量和運行穩定性。但是國內應用的很多軟件app store都沒有,需要線下的方式進行安裝。

2.第二種安裝方式是線下的.app格式的應用的安裝,即上一部分的(4)發布方式。這種用戶可以自行從網上搜索下載源,一般下下來的安裝文件是一個.dmg格式的磁盤映像,dmg 是蘋果的壓縮鏡像文件,類似於 Windows 下的 ISO,雙擊打開後會給係統掛上一個類似移動硬盤的虛擬磁盤,安裝完後可以右鍵彈出。它是 macOS 應用軟件通用的打包格式,裏麵一般包含“應用程序名.app”的圖標和一個應用程序文件夾(/Applications)快捷方式。直接將圖標拖曳至應用程序文件夾,即可完成安裝,非常快捷。

3.第三種是.pkg安裝包的安裝,即上一部分的(5)發布方式。.pkg屬於係統級軟件的安裝程序,類似於windows中的.exe安裝程序,會閱讀許可協議並選擇安裝位置、安裝內容,一般會修改係統配置,權限較高,需要sudo授權。

對於一些來源不明或沒有證書的應用,在打開安裝程序時有時會出現“文件已損壞,打不開”。這是由於係統的安全機製對來源不明的軟件的限製。可以通過在命令行裏修改權限,在係統偏好設置的安全性與隱私設置裏,改成允許任何來源的應用。

蘋果係統iOS、macOS應用管理機製(6)

蘋果係統iOS、macOS應用管理機製(7)

有時還會提示“來自身份不明的開發者”,這時同樣在偏好設置的安全性與隱私設置裏,可以看到要打開的應用被阻止的提示,點擊“仍要打開”即可。

蘋果係統iOS、macOS應用管理機製(8)

蘋果係統iOS、macOS應用管理機製(9)

蘋果的應用為.app的格式,既是一個包,包含應用的全部內容,可以右鍵顯示包內容,對裏麵的文件或配置進行修改(具有比iOS更高的權限),同時也是一個可執行文件,安裝在Applications文件夾後會自動出現在係統的Launchpad(啟動台)裏。

四、卸載

mac上對於應用的卸載,由於安裝方式不同,卸載方式也不同。app store裏安裝的應用,類似於iOS,在Launchpad(啟動台)裏長按圖標,點叉號即可卸載。線下的app store平台外自己安裝的應用極少數會自帶卸載程序,多數直接在Applications文件夾裏右鍵刪除即可。隻是對於.pkg安裝包安裝的應用,由於有時具有較高權限,可能會修改係統配置,所以刪除應用後有時可能會有卸載殘留,可以通過第三方卸載軟件或手動刪除。

watchOS

watchOS是蘋果公司基於iOS 係統開發的一套使用於Apple watch的手表操作係統。它的應用的開發與上線與iOS相同,用戶隻能通過App store來安裝應用。在2019年6月之前,對應用程序的安裝不能在apple watch上直接進行,隻能結合iphone使用。連接之後在iPhone上打開Apple Watch應用程序,來安裝需要的表上應用。安裝完成後,會首先在iPhone上麵顯示。需要說明的是,Apple Watch APP應用程序都是必須要配合iPhone使用的,因此所有安裝到Apple Watch上麵的應用程序,都會同時安裝到iPhone上。2019年6月之後發布的新的watchOS係統,自帶app store,不用再連接iphone來安裝應用,可以直接在app store裏獲取安裝。

卸載應用也是兩種方式,既可以在apple watch內直接卸載,也可以與iPhone配對,通過iPhone裏的apple watch應用來管理手表應用。

tvOS

tvOS是蘋果公司專門為Apple TV設計的操作係統,基於 iOS。2016年3月發布了 tvOS 9.2 操作係統。Apple TV是蘋果公司推出的一款高清電視機頂盒產品,用戶可以通過Apple TV在線收看電視節目,也可以通過Airplay功能,將iPad、iPhone、iPod和PC中的照片、視頻和音樂傳輸到電視上進行播放。tvOS也可以安裝一些應用,具有獨立的應用生態,通過自帶的app store進行搜索和安裝。

tvOS應用的開發與發布也與iOS類似,需要注冊成為開發者,使用官方的開發工具xcode進行開發,開發與發布同樣需要創建證書。具體過程均與iOS相同。

在國內目前用戶不多,不能直接收看國內的有線衛視節目,需要聯網安裝app來收看電視台。

蘋果係統與其他係統比較iOS與macOS對比

兩個係統都是蘋果自主研發的係統,但我們也可以看出,macOS的用戶比起iOS擁有更廣的權限,可以訪問係統資源,讀寫係統目錄、係統文件,也可以訪問應用內部目錄,對其配置文件進行修改,還可以下載安裝來自任何來源的應用。相比之下,iOS的係統生態就更加封閉,使用者無法查看係統文件資源,也不能訪問應用內部,隻能通過應用的接口來使用和管理應用。而對於廣大蘋果手機用戶而言,他們所使用的唯一的應用安裝方式就是通過官方的APP store。

iOS係統應用與安卓對比

具有安裝來源不同、用戶權限不同、運行機製不同、後台機製不同、響應處理指令權限不同幾大區別。相比之下優點:1)所有上線應用經過審核,具有更高的穩定性、流暢度、安全指數、優化性,且可以保護版權,安卓應用開發者隨意開發,參差不齊。2)應用具有較低的權限,可以更好的保護用戶隱私,相比之下,安卓許多應用如不開放權限則不讓用戶使用。3)通過優先響應屏幕和獨特的對內存管理的方式使其具有更流暢的運行效果。4)iOS軟硬件垂直整合,隻運行在蘋果設備上,安卓可以運行在多種設備上,所以iOS上的應用有更好的兼容性。

缺點:1)安卓係統開放,且開發門檻低,所以資源多,開發者多,創新也多。2)安卓係統用戶權限大,所以操作更靈活,也更加個性化。

windows與macOS應用對比

開發門檻不同:mac應用開發成本大,windows程序任意開發者均可以免費開發。

安裝來源不同:windows可以隨意安裝程序,mac的可以通過app平台或平台之外,均會驗證證書,質量更高。

安裝方法不同:windows安裝包進行安裝,mac可以應用商店直接獲取,或者直接複製app到應用程序,或者安裝包安裝。

應用文件結構不同,windows除了安裝根目錄,還會寫入注冊表信息,通過exe執行文件啟動。mac的app文件既是整個應用包,同時是啟動入口。

卸載方式不同:windows通過卸載程序,mac直接刪除。

蘋果係統中的安全機製Apple ID雙重認證

首次登錄一台新設備時,除輸入密碼外,還需要在信任設備上的授權才可以登錄。輸入驗證碼後,即確認信任這台新設備。由於隻輸入密碼不再能夠訪問帳戶,因此雙重認證顯著增強了 Apple ID 以及所有通過 Apple 儲存的個人信息的安全性。登錄成功後,係統將不會再次要求信任設備的驗證,除非完全退出登錄帳戶、抹掉設備數據或出於安全原因而需要更改密碼。受信任設備是已使用雙重認證登錄的設備,可以是裝有 iOS 9 及更高版本的 iPhone、iPad 或 iPod touch 或者裝有 OS X El Capitan 及更高版本的 Mac。受信任電話號碼是指可通過短信或自動語音電話接收驗證碼的號碼。您必須至少驗證一個受信任電話號碼才能注冊雙重認證。

代碼簽名

蘋果也是通過代碼簽名來保證每一個安裝到iOS上的APP都是經過蘋果官方允許的,防止盜版軟件、病毒入侵、靜默安裝等。蘋果也是通過代碼簽名來保證每一個安裝到iOS上的APP都是經過蘋果官方允許的,防止盜版軟件、病毒入侵、靜默安裝等。

可信引導

iOS設備開機後采用一種稱為可信引導的方式進入係統。引導過程中,安全隻讀內存 (SecureROM) 是首先被引導的部分,其中嵌入了根證書 (Root Certificate)用以檢查下一步所加載組件的RSA簽名。 在隨後的每個步驟中,係統校驗下一步驟所要加載組件的 RSA 簽名。這一信任鏈 (Chain of Trust) 保證了係統啟動過 程中的所有組件沒有被破壞和修改。

沙盒機製

沙盒也叫沙箱,英文standbox,其原理是通過重定向技術,把程序生成和修改的文件定向到自身文件夾中。在沙盒機製下,每個應用程序都有自己的存儲空間,程序之間的文件夾不能互相訪問。iOS係統為了保證係統安全,采用了這種機製。iOS 應用程序在安裝時,會創建屬於自己的沙盒文件,應用程序不能直接訪問其他應用程序的沙盒文件,當應用程序需要向外部請求或接收數據時,都需要經過權限認證,否則,無法獲取到數據。應用程序中所有的非代碼文件都保存在沙盒中,比如圖片、聲音、屬性列表,sqlite數據庫和文本文件等。

數據加密

iOS4 及以後的係統使用數據加密機製來保護文件係 統中的係統和數據分區。係統和數據分區中的數據將由一 個基於硬件設備的密鑰進行加密。在 iPhone3GS 以後的設 備上,該密鑰存儲於一個AES加密加速硬件上。這個基 於硬件的密鑰不能被 CPU 所訪問,隻有在加解密時才能 由該加速器獲取。通過這種機製,直接從硬盤上被取走的 原始數據就無法被正確解密。同時,數據加密機製還提供 了多種加密策略供應用程序選擇。應用程序可以選擇對一 些敏感文件使用NSFileProtectionComplete 策略而不是默認 的 NSFileProtection 策略加密數據。

瘋狂肆虐的電腦病毒幾乎都是針對Windows的,由於MAC的架構與Windows不同,沙盒機製、使用人數少、研究成本大、對應用安裝的管控力度,所以很少受到病毒的襲擊。

我要分享:

最新熱門遊戲

版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航