亚洲成Av人片在线观看不卡|中文字幕在线精品无码一区|国产精品福利午夜h视频|手机看片AV永久免费,91天堂在线视频,最新2021年偷拍精品视频,国产成人一区二区在线视频

您當(dāng)前的位置 :寧夏資訊網(wǎng) > 資訊 >  內(nèi)容正文
投稿

蘋果系統(tǒng)iOS、macOS應(yīng)用管理機(jī)制

寧夏資訊網(wǎng) 2020-04-23 10:37:34 來(lái)源: 閱讀:-

蘋果系統(tǒng)包括:iOS、macOS、watchOS、tvOS。應(yīng)用軟件的生命周期為:開發(fā)、上線、安裝、使用、卸載。這篇文檔將從應(yīng)用生命周期的各個(gè)環(huán)節(jié)介紹蘋果系統(tǒng)對(duì)應(yīng)用的管理機(jī)制,主要詳細(xì)介紹iOS和macOS,watchOS與tvOS由于用戶數(shù)量少,以及流程與iOS相似度較高,只作了簡(jiǎn)單介紹。

iOS

一、開發(fā)

注冊(cè)賬號(hào):

單純開發(fā)是不用付費(fèi)的,使用模擬器就可以。如果要真機(jī)調(diào)試,或者提交appstore,需要申請(qǐng)開發(fā)者帳號(hào)。

需要提交:1、注冊(cè)一個(gè)蘋果賬號(hào)作為開發(fā)者賬號(hào)。2、個(gè)人或企業(yè)的姓名、地址、聯(lián)系方式等相應(yīng)資料。3、能夠做美金結(jié)算的信用卡賬。4、支付99美金給蘋果公司。

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

Apple 開發(fā)者到期 App 是會(huì)下架,但是已經(jīng)安裝 App 的用戶,手機(jī)仍能使用App,App Store里面搜索不到。續(xù)費(fèi) Apple 開發(fā)者后,App 會(huì)在當(dāng)天上線App Store。Apple開發(fā)者到期時(shí)不能轉(zhuǎn)讓App。

開發(fā)工具:

蘋果應(yīng)用開發(fā)需要使用mac系統(tǒng)下的Xcode,使用Objective-C和Swift語(yǔ)言。Xcode由蘋果公司開發(fā)的集成開發(fā)環(huán)境,免費(fèi)對(duì)用戶使用,可以開發(fā)iOS、macOS、watchOS、tvOS四個(gè)系統(tǒng)應(yīng)用。

二、上線

應(yīng)用開發(fā)完成后,如要發(fā)布上架App store,大致經(jīng)過(guò)以下8個(gè)步驟。

1. 登錄Apple開發(fā)者中心網(wǎng)站,選擇certificates,Identifiers and profiles,在APP IDs選項(xiàng)里注冊(cè)一個(gè)APP ID,用于標(biāo)識(shí)一個(gè)或一組APP,需要填寫APP的描述和需要注冊(cè)的服務(wù)功能。

2.創(chuàng)建開發(fā)證書,證書分為iOS Development(開發(fā)證書)和iOS Distribution(發(fā)布證書),開發(fā)證書用于真機(jī)調(diào)試,有一年使用期限。發(fā)布證書用于APP的發(fā)布。

3.配置iOS Provisoning Profiles(debug)描述文件,Provisoning Profiles是蘋果簽名認(rèn)證的Plist文件,列舉了開發(fā)證書、APP ID、以及授權(quán)運(yùn)行設(shè)備的UDID(為一個(gè)設(shè)備的唯一標(biāo)識(shí))。

4.在Xcode中進(jìn)行應(yīng)用證書注冊(cè)并打包APP。在工程里將Provisoning Profiles配置導(dǎo)入,完成后就可以打包APP了,導(dǎo)出APP包。

5.真機(jī)調(diào)試??梢栽谑跈?quán)的設(shè)備上進(jìn)行真機(jī)調(diào)試,將打包導(dǎo)出的APP包安裝于設(shè)備上,安裝時(shí)系統(tǒng)會(huì)對(duì)開發(fā)證書進(jìn)行認(rèn)證,成功后app會(huì)安裝在設(shè)備上,可以在設(shè)備上對(duì)app進(jìn)行測(cè)試。

6.真機(jī)測(cè)試沒問(wèn)題后,可以對(duì)APP進(jìn)行上架發(fā)布。這里需要進(jìn)入開發(fā)者中心創(chuàng)建發(fā)布證書,并配置Provisoning Profiles 描述文件。

7.需要在itunes connect 上創(chuàng)建本應(yīng)用的項(xiàng)目。在開發(fā)者中心的itunes connect管理界面創(chuàng)建一個(gè)新APP項(xiàng)目,填寫APP的相關(guān)信息包括描述、銷售范圍、版本信息、關(guān)鍵詞等。

8.提交審核。需要提供一個(gè)測(cè)試賬號(hào)用于審核人員進(jìn)行測(cè)試。應(yīng)用提交之后審核人員對(duì)應(yīng)用進(jìn)行審核。審核針對(duì)安全、性能、業(yè)務(wù)、設(shè)計(jì)、法律五個(gè)層面。

安全:不包含不良內(nèi)容,不造成人身安全隱患、數(shù)據(jù)安全、不得在指定容器范圍外讀寫數(shù)據(jù)、不具有特殊權(quán)限

性能:APP完成度、硬件兼容性、能耗、占用系統(tǒng)資源量、網(wǎng)絡(luò)性能

業(yè)務(wù):付款、廣告合乎標(biāo)準(zhǔn)

設(shè)計(jì):不涉抄襲、有價(jià)值、

法律:隱私、知識(shí)產(chǎn)權(quán)

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

三、安裝

在 iOS 出來(lái)之前,在主流操作系統(tǒng)(Mac/Windows/Linux)上開發(fā)和運(yùn)行軟件是不需要簽名的,軟件隨便從哪里下載都能運(yùn)行,導(dǎo)致平臺(tái)對(duì)第三方軟件難以控制,盜版流行。蘋果希望解決這樣的問(wèn)題,在 iOS 平臺(tái)對(duì)第三方 APP 有絕對(duì)的控制權(quán),一定要保證每一個(gè)安裝到 iOS 上的 APP 都是經(jīng)過(guò)蘋果官方允許的,怎樣保證呢?就是通過(guò)簽名機(jī)制。

ios 正規(guī)的應(yīng)用安裝方式分為三種:

1.通過(guò)APP store安裝

對(duì)于通過(guò)APP store安裝的應(yīng)用,iOS為了確保所有的應(yīng)用程序沒有被修改,要求必須使用蘋果頒發(fā)的證書對(duì)可執(zhí)行代碼進(jìn)行簽名。開發(fā)者使用蘋果頒發(fā)的發(fā)布證書簽名后,將應(yīng)用題叫道APPstore審核,審核成功后,蘋果使用其私鑰對(duì)程序進(jìn)行簽名。用戶從APPstore下載安裝應(yīng)用,iOS調(diào)用系統(tǒng)進(jìn)程獲取provisioning profile文件,對(duì)應(yīng)用程序進(jìn)行證書校驗(yàn)。

2.開發(fā) App 時(shí)直接把開發(fā)中的應(yīng)用安裝進(jìn)手機(jī)進(jìn)行調(diào)試,即在上線時(shí)的真機(jī)調(diào)試

開發(fā)時(shí)安裝APP,它有兩個(gè)需求,1)安裝包不需要傳到蘋果服務(wù)器,可以直接安裝到手機(jī)上。2)蘋果必須對(duì)這里的安裝有控制權(quán),包括a.經(jīng)過(guò)蘋果允許才可以這樣安裝。b.不能被濫用導(dǎo)致非開發(fā)app也能被安裝。蘋果使用雙層簽名的機(jī)制,

1)在你 Mac 開發(fā)機(jī)器生成一對(duì)公私鑰,這里稱為公鑰L,私鑰L。

2)蘋果自己有固定的一對(duì)公私鑰,跟上面 AppStore 例子一樣,私鑰在蘋果后臺(tái),公鑰在每個(gè) iOS 設(shè)備上。這里稱為公鑰A,私鑰A。

3)把公鑰 L 傳到蘋果后臺(tái),用蘋果后臺(tái)里的私鑰 A 去簽名公鑰 L。得到一份數(shù)據(jù)包含了公鑰 L 以及其簽名,把這份數(shù)據(jù)稱為證書。

4)在蘋果后臺(tái)申請(qǐng) AppID,配置好設(shè)備 ID 列表和 APP 可使用的權(quán)限,再加上第③步的證書,組成的數(shù)據(jù)用私鑰 A 簽名,把數(shù)據(jù)和簽名一起組成一個(gè) Provisioning Profile 文件,下載到本地 Mac 開發(fā)機(jī)。

5)在開發(fā)時(shí),編譯完一個(gè) APP 后,用本地的私鑰 L 對(duì)這個(gè) APP 進(jìn)行簽名,同時(shí)把第④步得到的 Provisioning Profile 文件打包進(jìn) APP 里,文件名為,把 APP 安裝到手機(jī)上。

6)在安裝時(shí),iOS 系統(tǒng)取得證書,通過(guò)系統(tǒng)內(nèi)置的公鑰 A,去驗(yàn)證的數(shù)字簽名是否正確,里面的證書簽名也會(huì)再驗(yàn)一遍。

7)確保了里的數(shù)據(jù)都是蘋果授權(quán)以后,就可以取出里面的數(shù)據(jù),做各種驗(yàn)證,包括用公鑰 L 驗(yàn)證APP簽名,驗(yàn)證設(shè)備 ID 是否在 ID 列表上,AppID 是否對(duì)應(yīng)得上,權(quán)限開關(guān)是否跟 APP 里的 Entitlements 對(duì)應(yīng)等。

3.企業(yè)內(nèi)部分發(fā),可以直接安裝企業(yè)證書簽名后的 APP

企業(yè)內(nèi)部應(yīng)用,即只在企業(yè)部門和員工內(nèi)部使用、不對(duì)外公開的應(yīng)用。蘋果提供了專門的In-House證書用來(lái)發(fā)布這種應(yīng)用,可以分發(fā)給任意的手機(jī),只要通過(guò)一個(gè)URL即可下載安裝,不用上傳到App Store審核。In-House應(yīng)用,有時(shí)需要根據(jù)部門需求進(jìn)行版本的快速迭代,因?yàn)椴恍枰狝pp Store審核,所以可以做到隨時(shí)修改,隨時(shí)發(fā)布,節(jié)省了大量的時(shí)間。

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

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

2)根據(jù)plist文件里面提供的信息下載并安裝ipa包,還會(huì)訪問(wèn)大小圖標(biāo),大小圖標(biāo)在ipa包正在下載時(shí)顯示,當(dāng)下載完畢后顯示程序自帶的圖標(biāo)

3)下載安裝后,如果想打開程序還需要在手機(jī) 設(shè)置-<通用-<描述文件與設(shè)備管理,在“企業(yè)級(jí)應(yīng)用”分組下,點(diǎn)擊 信任 開發(fā)者的證書里面選擇相應(yīng)的證書信任后,方可打開程序。

綜上,3種安裝方式歸根結(jié)底,都是通過(guò)驗(yàn)證安裝程序的provisioning profile文件。安裝應(yīng)用程序時(shí),Provisioning Profile 文件被拷貝到 iOS 設(shè)備中,運(yùn)行該 iOS App 的設(shè)備通過(guò)它來(lái)認(rèn)證安裝的程序。Provisioning Profile 把AppID、簽名證書、設(shè)備授權(quán)這些信息全部打包在一起,方便我們?cè)谡{(diào)試和發(fā)布程序打包時(shí)使用。這樣,只要在不同的情況下選擇不同的 Provisioning Profile 文件就可以了。

除了在正規(guī)途徑下安裝應(yīng)用以外,通過(guò)“打破”原有權(quán)限,獲取更高權(quán)限,可以實(shí)現(xiàn)脫離官方平臺(tái),自由安裝第三方的應(yīng)用,即我們口中的“越獄”。

iOS系統(tǒng)具有封閉性,通過(guò)代碼簽名機(jī)制限制未經(jīng)簽名的代碼在iOS系統(tǒng)中執(zhí)行。用戶不能訪問(wèn)系統(tǒng)資源,也無(wú)權(quán)修改,只能使用蘋果頒發(fā)證書的正規(guī)途徑的應(yīng)用或程序接口完成系統(tǒng)允許的操作。越獄后,用戶可以獲得權(quán)限訪問(wèn)與修改系統(tǒng)文件,繼而獲得更多的權(quán)限,完成之前未被iOS允許的功能。越獄的原理是通過(guò)漏洞。至少需要2個(gè)漏洞,第一個(gè)漏洞用來(lái)完成專有代碼執(zhí)行,第二個(gè)漏洞用來(lái)使內(nèi)核的安全措施失效,提升權(quán)限。

越獄之后安裝應(yīng)用可不通過(guò)APP store,有一些越獄者制作的類似APP store的應(yīng)用安裝商店,APP store默認(rèn)安裝位置為/var/mobile/Applications目錄里,越獄后可安裝在根目錄下,所以墻紙、主題、鈴聲等一些個(gè)性化應(yīng)用在越獄后可以得到安裝。

四、使用

iOS 程序 5 種狀態(tài):

1. Not running:

應(yīng)用還沒有啟動(dòng),或者應(yīng)用正在運(yùn)行但是途中被系統(tǒng)停止

:

當(dāng)前應(yīng)用正在前臺(tái)運(yùn)行,但是并不接收事件(當(dāng)前或許正在執(zhí)行其它代碼)。一般每當(dāng)應(yīng)用要從一個(gè)狀態(tài)切換到另一個(gè)不同的狀態(tài)時(shí),中途過(guò)渡會(huì)短暫停留在此狀態(tài)。唯一在此狀態(tài)停留時(shí)間比較長(zhǎng)的情況是:當(dāng)用戶鎖屏?xí)r,或者系統(tǒng)提示用戶去響應(yīng)某些(諸如電話來(lái)電、有未讀短信等)事件的時(shí)候。

:

當(dāng)前應(yīng)用正在前臺(tái)運(yùn)行,并且接收事件。這是應(yīng)用正在前臺(tái)運(yùn)行時(shí)所處的正常狀態(tài)。

:

應(yīng)用處在后臺(tái),并且還在執(zhí)行代碼。大多數(shù)將 要進(jìn)入Suspended狀態(tài)的應(yīng)用,會(huì)先短暫進(jìn)入此狀態(tài)。然而,對(duì)于請(qǐng)求需要額外的執(zhí)行時(shí)間的應(yīng)用,會(huì)在此狀態(tài)保持更長(zhǎng)一段時(shí)間。另外,如果一個(gè)應(yīng)用要求啟動(dòng)時(shí)直接進(jìn)入后臺(tái)運(yùn)行,這樣的應(yīng)用會(huì)直接從Notrunning狀態(tài)進(jìn)入Background狀態(tài),中途不會(huì)經(jīng)過(guò)Inactive狀態(tài)。比如沒有界面的應(yīng)用。注此處并不特指沒有界面的應(yīng)用,其實(shí)也可以是有界面的應(yīng)用,只是如果要直接進(jìn)入background狀態(tài)的話,該應(yīng)用界面不會(huì)被顯示。

:

應(yīng)用處在后臺(tái),并且已停止執(zhí)行代碼。系統(tǒng)自動(dòng)的將應(yīng)用移入此狀態(tài),且在此舉之前不會(huì)對(duì)應(yīng)用做任何通知。當(dāng)處在此狀態(tài)時(shí),應(yīng)用依然駐留內(nèi)存但不執(zhí)行任何程序代碼。當(dāng)系統(tǒng)發(fā)生低內(nèi)存告警時(shí),系統(tǒng)將會(huì)將處 于Suspended狀態(tài)的應(yīng)用清除出內(nèi)存以為正在前臺(tái)運(yùn)行的應(yīng)用提供足夠的內(nèi)存。

應(yīng)用啟動(dòng)過(guò)程:

1、執(zhí)行main函數(shù)

2、在此方法中調(diào)用UIApplicationMain

2.1 創(chuàng)建UIApplication對(duì)象(UIApplication對(duì)象是應(yīng)用程序的象征,一個(gè)UIApplication對(duì)象就代表一個(gè)應(yīng)用程序。每一個(gè)應(yīng)用都有自己的UIApplication對(duì)象,而且是單例的,如果試圖在程序中新建一個(gè)UIApplication對(duì)象,那么將報(bào)錯(cuò)提示。一個(gè)iOS程序啟動(dòng)后創(chuàng)建的第一個(gè)對(duì)象就是UIApplication對(duì)象,且只有一個(gè)。利用UIApplication對(duì)象,能進(jìn)行一些應(yīng)用級(jí)別的操作。)

創(chuàng)建UIApplication的delegate對(duì)象。(UIApplication Delegate的作用是當(dāng)應(yīng)用程序發(fā)出一系列系統(tǒng)事件如來(lái)電或鎖屏等,做出相應(yīng)的反應(yīng)。新建完項(xiàng)目,都有個(gè)帶有“AppDelegate”字眼的類,它就是UIApplication的代理,AppDelegate默認(rèn)已經(jīng)遵守了UIApplicationDelegate協(xié)議,已經(jīng)是UIApplication的代理。系統(tǒng)事件如程序降將要啟動(dòng)、程序啟動(dòng)完成、程序進(jìn)入后臺(tái)、程序進(jìn)入前臺(tái)、程序退出等。)

開啟消息循環(huán)

3、delegate對(duì)象開始監(jiān)聽系統(tǒng)事件

3.1 app啟動(dòng)完成后會(huì)調(diào)用delegate對(duì)象的程序加載完成的方法

如果app的plist設(shè)置了main storyboard 會(huì)創(chuàng)建UIWindow對(duì)象(如 果沒有設(shè)置則不創(chuàng)建)

創(chuàng)建main storyboard中綁定的controller對(duì)象(stroyboard中箭 頭指向的控制器)

設(shè)置給window對(duì)象的rootViewController

3.5 設(shè)置window對(duì)象可見

屏幕響應(yīng)順序

iOS和安卓系統(tǒng)具有不同的屏幕響應(yīng)順序,IOS對(duì)屏幕的響應(yīng)順序是:觸摸→媒體→服務(wù)→架構(gòu),而安卓是:程序→框架→屏幕顯示資源→架構(gòu)。所以在視覺效果上,iOS會(huì)有更流暢的感覺。

后臺(tái)管理機(jī)制

從iOS 3開始,蘋 果為iPhone引進(jìn)了push notification,不啟動(dòng)應(yīng)用也 能收到推送消息,原理是 消息由APNS(Apple Push Notification Service, Apple Push服務(wù)器)統(tǒng)一管 理,隨著iOS 4的發(fā)布,iOS也開始有了 多任務(wù)功能,當(dāng)你點(diǎn)擊H o m e鍵后,當(dāng)前 程序轉(zhuǎn)入后臺(tái)(iOS 4之前按Home鍵就 直接干掉應(yīng)用了),后臺(tái)應(yīng)用以墓碑的形 式(退出前的狀態(tài))保存在內(nèi)存中,用戶 可以快速恢復(fù)。但是蘋果對(duì)后臺(tái)的限制非 常嚴(yán)格,只有一些特殊應(yīng)用可以在后臺(tái) 真正運(yùn)行,比如音頻播放類、VoIP類、 newsstand、位置服務(wù)等。

如果不做任何配置的話,你的應(yīng)用最 多只能在后臺(tái)運(yùn)行5秒,之后就會(huì)被掛起 (存于內(nèi)存但不運(yùn)行),如果你配置了后 臺(tái)運(yùn)行(如需下載),大概在594秒( 分鐘)時(shí)進(jìn)程停止,程序同樣也會(huì)被掛 起,一旦系統(tǒng)需要內(nèi)存了,最早的后臺(tái)進(jìn) 程就會(huì)被殺掉以釋放內(nèi)存。

從 iOS 7 開始, 一旦手機(jī)鎖屏, 后臺(tái)應(yīng)用將會(huì)很快被暫停, 之后當(dāng)系統(tǒng)被喚醒時(shí),那些暫停的后臺(tái)應(yīng)用會(huì)一起繼續(xù)運(yùn)行?,F(xiàn)在的iOS后臺(tái)管理很智能, 他會(huì)記憶你每天什么時(shí)段打開什么應(yīng)用, 經(jīng)過(guò)一段時(shí)間后, 他會(huì)在適當(dāng)時(shí)間喚醒相應(yīng)的應(yīng)用。iOS7新增三種后臺(tái)模式:

Baxkground Fetch 后臺(tái)應(yīng)用刷新

iOS 7 之前的應(yīng)用必須在打開時(shí)才能聯(lián)網(wǎng)獲取數(shù)據(jù), 而它可以讓應(yīng)用在后臺(tái)直接獲取數(shù)據(jù)。

Silent Remote Notifications 靜默推送喚醒

iOS 7 之前當(dāng)收到消息后, 只有打開應(yīng)用才能從APNS獲取推送的具體消息, 現(xiàn)在在收到消息后, 會(huì)自動(dòng)喚醒相應(yīng)的APP , 讓該APP在后臺(tái)獲取消息, 再通知用戶。

Background Transfer Servce 后臺(tái)傳輸

以前一旦下載被轉(zhuǎn)移到后臺(tái)最多只能持續(xù)運(yùn)行549秒(分鐘), 現(xiàn)在所有的下載任務(wù)會(huì)交給系統(tǒng)獨(dú)立的進(jìn)程去完成, 不管APP在前臺(tái)、掛起還是被殺掉, 下載都在繼續(xù)進(jìn)行。

自動(dòng)清理機(jī)制

iOS系統(tǒng)在安裝應(yīng)用或者使用過(guò)程中存儲(chǔ)空間不足時(shí),會(huì)自動(dòng)清理一些應(yīng)用的緩存以釋放空間。

APP 更新推送

當(dāng)app有新版本時(shí),可以在APP store里更新應(yīng)用。APP在安裝的時(shí)候,會(huì)在數(shù)據(jù)庫(kù)里appid對(duì)應(yīng)的列表下新增版本號(hào)的關(guān)鍵字。用戶在【更新】界面刷新操作后,發(fā)送請(qǐng)求查詢用戶表,并關(guān)聯(lián)APP信息表獲取到用戶安裝過(guò)的每一款A(yù)PP的最新版本號(hào)列表。然后把最新版本號(hào)列表中的app版本號(hào),與本地的app版本進(jìn)行比對(duì),如果最新版本號(hào)列表中的版本號(hào)大于本地版本號(hào),則會(huì)有更新提示。

五、卸載

iOS 文件目錄結(jié)構(gòu):

/:為根目錄

Applications: 存放所有的系統(tǒng) APP 和來(lái)自 Cydia 的 APP,不包括從 App Store 下載的APP

Developer: 供開發(fā)者使用

Library:系統(tǒng)資源,用戶設(shè)置

System:系統(tǒng)的重要組成部分

User:用戶目錄,實(shí)際指向 /var/mobile

bin:存放用戶級(jí)可執(zhí)行文件,如 ls、mv 等

dev:設(shè)備文件

etc:存放系統(tǒng)腳本、hosts 配置、SSH 配置文件等

sbin:存放系統(tǒng)二進(jìn)制文件

usr:用戶工具和程序

var:變量文件,在正常運(yùn)行的系統(tǒng)中其內(nèi)容不斷變化的文件

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

iOS 中 app 對(duì)本地存儲(chǔ)只能訪問(wèn)到自己的根目錄,再往上就沒有權(quán)限了。在刪除應(yīng)用時(shí),app自身的存儲(chǔ)空間的根目錄會(huì)直接刪除,在機(jī)制內(nèi)不會(huì)留下殘留文件。

Mac OS

Mac OS是基于Unix內(nèi)核的圖形化操作系統(tǒng);由蘋果自行開發(fā),不對(duì)外銷售,一般情況下在普通PC上無(wú)法安裝,只安裝于蘋果的設(shè)備中。mac OS雖然也對(duì)應(yīng)用有較嚴(yán)格的管理機(jī)制,但與手機(jī)端iOS系統(tǒng)相比,用戶具有更多的權(quán)限。

一、開發(fā)

mac OS應(yīng)用的開發(fā)過(guò)程與iOS的開發(fā)類似,需要付費(fèi)注冊(cè)開發(fā)者賬號(hào),同樣使用Xcode作為開發(fā)工具。

二、發(fā)布

應(yīng)用開發(fā)完成后,發(fā)布方式與iOS下有所不同。除了在app store線上發(fā)布,還可以在平臺(tái)以外發(fā)布。mac開發(fā)下的證書有5種:

開發(fā)證書:

(1)Mac Development:用于開發(fā)和測(cè)試的證書,跟iOS development證書一樣;運(yùn)行在指定設(shè)備上需要把設(shè)備的UUID添加到devices里面去。

發(fā)布證書:

Mac App Store

(2)Mac App Distribution:這個(gè)用于 Xcode 自己把.app 文件上傳到 Mac App Store,具體的上線過(guò)程與iOS應(yīng)用類似。

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

Developer ID

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

(5)Developer ID Installer:用于開發(fā)者打包,同時(shí)加上開發(fā)者帳號(hào)簽名,打包生成一個(gè).pkg的安裝包,可以裝到任意一臺(tái)Mac電腦上執(zhí)行安裝過(guò)程。

5種證書,開發(fā)證書用于開發(fā)和測(cè)試,發(fā)布證書就對(duì)應(yīng)著app store和線下兩種發(fā)布形式。根據(jù)需要的發(fā)布形式創(chuàng)建對(duì)應(yīng)的證書,證書的創(chuàng)建過(guò)程可參考iOS應(yīng)用的證書創(chuàng)建,發(fā)布的具體過(guò)程可以按照官方文檔和Xcode的提示一步步來(lái)。當(dāng)然如果不想用證書也不擔(dān)心用戶拒絕來(lái)源不明的應(yīng)用的話,也可以不用任何證書簽名打包應(yīng)用,用默認(rèn)的簽名方式就可以。

三、安裝

mac OS上對(duì)于應(yīng)用的不同發(fā)布形式,也有不同的安裝方法,可以分為三種。

1.對(duì)于app store上的應(yīng)用,即上一部分的(2)(3)發(fā)布方式,用戶可以直接登錄自己的蘋果賬戶,進(jìn)行購(gòu)買或者獲取資源下載,對(duì)軟件的購(gòu)買在平臺(tái)完成,蘋果會(huì)抽取一部分分成。app store上的應(yīng)用經(jīng)過(guò)蘋果內(nèi)部人員的審核和測(cè)試,本身會(huì)具有更高的完整度、質(zhì)量和運(yùn)行穩(wěn)定性。但是國(guó)內(nèi)應(yīng)用的很多軟件app store都沒有,需要線下的方式進(jìn)行安裝。

2.第二種安裝方式是線下的.app格式的應(yīng)用的安裝,即上一部分的(4)發(fā)布方式。這種用戶可以自行從網(wǎng)上搜索下載源,一般下下來(lái)的安裝文件是一個(gè).dmg格式的磁盤映像,dmg 是蘋果的壓縮鏡像文件,類似于 Windows 下的 ISO,雙擊打開后會(huì)給系統(tǒng)掛上一個(gè)類似移動(dòng)硬盤的虛擬磁盤,安裝完后可以右鍵彈出。它是 macOS 應(yīng)用軟件通用的打包格式,里面一般包含“應(yīng)用程序名.app”的圖標(biāo)和一個(gè)應(yīng)用程序文件夾(/Applications)快捷方式。直接將圖標(biāo)拖曳至應(yīng)用程序文件夾,即可完成安裝,非??旖?。

3.第三種是.pkg安裝包的安裝,即上一部分的(5)發(fā)布方式。.pkg屬于系統(tǒng)級(jí)軟件的安裝程序,類似于windows中的.exe安裝程序,會(huì)閱讀許可協(xié)議并選擇安裝位置、安裝內(nèi)容,一般會(huì)修改系統(tǒng)配置,權(quán)限較高,需要sudo授權(quán)。

對(duì)于一些來(lái)源不明或沒有證書的應(yīng)用,在打開安裝程序時(shí)有時(shí)會(huì)出現(xiàn)“文件已損壞,打不開”。這是由于系統(tǒng)的安全機(jī)制對(duì)來(lái)源不明的軟件的限制??梢酝ㄟ^(guò)在命令行里修改權(quán)限,在系統(tǒng)偏好設(shè)置的安全性與隱私設(shè)置里,改成允許任何來(lái)源的應(yīng)用。

有時(shí)還會(huì)提示“來(lái)自身份不明的開發(fā)者”,這時(shí)同樣在偏好設(shè)置的安全性與隱私設(shè)置里,可以看到要打開的應(yīng)用被阻止的提示,點(diǎn)擊“仍要打開”即可。

蘋果的應(yīng)用為.app的格式,既是一個(gè)包,包含應(yīng)用的全部?jī)?nèi)容,可以右鍵顯示包內(nèi)容,對(duì)里面的文件或配置進(jìn)行修改(具有比iOS更高的權(quán)限),同時(shí)也是一個(gè)可執(zhí)行文件,安裝在Applications文件夾后會(huì)自動(dòng)出現(xiàn)在系統(tǒng)的Launchpad(啟動(dòng)臺(tái))里。

四、卸載

mac上對(duì)于應(yīng)用的卸載,由于安裝方式不同,卸載方式也不同。app store里安裝的應(yīng)用,類似于iOS,在Launchpad(啟動(dòng)臺(tái))里長(zhǎng)按圖標(biāo),點(diǎn)叉號(hào)即可卸載。線下的app store平臺(tái)外自己安裝的應(yīng)用極少數(shù)會(huì)自帶卸載程序,多數(shù)直接在Applications文件夾里右鍵刪除即可。只是對(duì)于.pkg安裝包安裝的應(yīng)用,由于有時(shí)具有較高權(quán)限,可能會(huì)修改系統(tǒng)配置,所以刪除應(yīng)用后有時(shí)可能會(huì)有卸載殘留,可以通過(guò)第三方卸載軟件或手動(dòng)刪除。

watchOS

watchOS是蘋果公司基于iOS 系統(tǒng)開發(fā)的一套使用于Apple watch的手表操作系統(tǒng)。它的應(yīng)用的開發(fā)與上線與iOS相同,用戶只能通過(guò)App store來(lái)安裝應(yīng)用。在2019年6月之前,對(duì)應(yīng)用程序的安裝不能在apple watch上直接進(jìn)行,只能結(jié)合iphone使用。連接之后在iPhone上打開Apple Watch應(yīng)用程序,來(lái)安裝需要的表上應(yīng)用。安裝完成后,會(huì)首先在iPhone上面顯示。需要說(shuō)明的是,Apple Watch APP應(yīng)用程序都是必須要配合iPhone使用的,因此所有安裝到Apple Watch上面的應(yīng)用程序,都會(huì)同時(shí)安裝到iPhone上。2019年6月之后發(fā)布的新的watchOS系統(tǒng),自帶app store,不用再連接iphone來(lái)安裝應(yīng)用,可以直接在app store里獲取安裝。

卸載應(yīng)用也是兩種方式,既可以在apple watch內(nèi)直接卸載,也可以與iPhone配對(duì),通過(guò)iPhone里的apple watch應(yīng)用來(lái)管理手表應(yīng)用。

tvOS

tvOS是蘋果公司專門為Apple TV設(shè)計(jì)的操作系統(tǒng),基于 iOS。2016年3月發(fā)布了 tvOS 9.2 操作系統(tǒng)。Apple TV是蘋果公司推出的一款高清電視機(jī)頂盒產(chǎn)品,用戶可以通過(guò)Apple TV在線收看電視節(jié)目,也可以通過(guò)Airplay功能,將iPad、iPhone、iPod和PC中的照片、視頻和音樂傳輸?shù)诫娨暽线M(jìn)行播放。tvOS也可以安裝一些應(yīng)用,具有獨(dú)立的應(yīng)用生態(tài),通過(guò)自帶的app store進(jìn)行搜索和安裝。

tvOS應(yīng)用的開發(fā)與發(fā)布也與iOS類似,需要注冊(cè)成為開發(fā)者,使用官方的開發(fā)工具xcode進(jìn)行開發(fā),開發(fā)與發(fā)布同樣需要?jiǎng)?chuàng)建證書。具體過(guò)程均與iOS相同。

在國(guó)內(nèi)目前用戶不多,不能直接收看國(guó)內(nèi)的有線衛(wèi)視節(jié)目,需要聯(lián)網(wǎng)安裝app來(lái)收看電視臺(tái)。

蘋果系統(tǒng)與其他系統(tǒng)比較

iOS與macOS對(duì)比

兩個(gè)系統(tǒng)都是蘋果自主研發(fā)的系統(tǒng),但我們也可以看出,macOS的用戶比起iOS擁有更廣的權(quán)限,可以訪問(wèn)系統(tǒng)資源,讀寫系統(tǒng)目錄、系統(tǒng)文件,也可以訪問(wèn)應(yīng)用內(nèi)部目錄,對(duì)其配置文件進(jìn)行修改,還可以下載安裝來(lái)自任何來(lái)源的應(yīng)用。相比之下,iOS的系統(tǒng)生態(tài)就更加封閉,使用者無(wú)法查看系統(tǒng)文件資源,也不能訪問(wèn)應(yīng)用內(nèi)部,只能通過(guò)應(yīng)用的接口來(lái)使用和管理應(yīng)用。而對(duì)于廣大蘋果手機(jī)用戶而言,他們所使用的唯一的應(yīng)用安裝方式就是通過(guò)官方的APP store。

iOS系統(tǒng)應(yīng)用與安卓對(duì)比

具有安裝來(lái)源不同、用戶權(quán)限不同、運(yùn)行機(jī)制不同、后臺(tái)機(jī)制不同、響應(yīng)處理指令權(quán)限不同幾大區(qū)別。相比之下優(yōu)點(diǎn):1)所有上線應(yīng)用經(jīng)過(guò)審核,具有更高的穩(wěn)定性、流暢度、安全指數(shù)、優(yōu)化性,且可以保護(hù)版權(quán),安卓應(yīng)用開發(fā)者隨意開發(fā),參差不齊。2)應(yīng)用具有較低的權(quán)限,可以更好的保護(hù)用戶隱私,相比之下,安卓許多應(yīng)用如不開放權(quán)限則不讓用戶使用。3)通過(guò)優(yōu)先響應(yīng)屏幕和獨(dú)特的對(duì)內(nèi)存管理的方式使其具有更流暢的運(yùn)行效果。4)iOS軟硬件垂直整合,只運(yùn)行在蘋果設(shè)備上,安卓可以運(yùn)行在多種設(shè)備上,所以iOS上的應(yīng)用有更好的兼容性。

缺點(diǎn):1)安卓系統(tǒng)開放,且開發(fā)門檻低,所以資源多,開發(fā)者多,創(chuàng)新也多。2)安卓系統(tǒng)用戶權(quán)限大,所以操作更靈活,也更加個(gè)性化。

windows與macOS應(yīng)用對(duì)比

開發(fā)門檻不同:mac應(yīng)用開發(fā)成本大,windows程序任意開發(fā)者均可以免費(fèi)開發(fā)。

安裝來(lái)源不同:windows可以隨意安裝程序,mac的可以通過(guò)app平臺(tái)或平臺(tái)之外,均會(huì)驗(yàn)證證書,質(zhì)量更高。

安裝方法不同:windows安裝包進(jìn)行安裝,mac可以應(yīng)用商店直接獲取,或者直接復(fù)制app到應(yīng)用程序,或者安裝包安裝。

應(yīng)用文件結(jié)構(gòu)不同,windows除了安裝根目錄,還會(huì)寫入注冊(cè)表信息,通過(guò)exe執(zhí)行文件啟動(dòng)。mac的app文件既是整個(gè)應(yīng)用包,同時(shí)是啟動(dòng)入口。

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

蘋果系統(tǒng)中的安全機(jī)制

Apple ID雙重認(rèn)證

首次登錄一臺(tái)新設(shè)備時(shí),除輸入密碼外,還需要在信任設(shè)備上的授權(quán)才可以登錄。輸入驗(yàn)證碼后,即確認(rèn)信任這臺(tái)新設(shè)備。由于只輸入密碼不再能夠訪問(wèn)帳戶,因此雙重認(rèn)證顯著增強(qiáng)了 Apple ID 以及所有通過(guò) Apple 儲(chǔ)存的個(gè)人信息的安全性。登錄成功后,系統(tǒng)將不會(huì)再次要求信任設(shè)備的驗(yàn)證,除非完全退出登錄帳戶、抹掉設(shè)備數(shù)據(jù)或出于安全原因而需要更改密碼。受信任設(shè)備是已使用雙重認(rèn)證登錄的設(shè)備,可以是裝有 iOS 9 及更高版本的 iPhone、iPad 或 iPod touch 或者裝有 OS X El Capitan 及更高版本的 Mac。受信任電話號(hào)碼是指可通過(guò)短信或自動(dòng)語(yǔ)音電話接收驗(yàn)證碼的號(hào)碼。您必須至少驗(yàn)證一個(gè)受信任電話號(hào)碼才能注冊(cè)雙重認(rèn)證。

代碼簽名

蘋果也是通過(guò)代碼簽名來(lái)保證每一個(gè)安裝到iOS上的APP都是經(jīng)過(guò)蘋果官方允許的,防止盜版軟件、病毒入侵、靜默安裝等。蘋果也是通過(guò)代碼簽名來(lái)保證每一個(gè)安裝到iOS上的APP都是經(jīng)過(guò)蘋果官方允許的,防止盜版軟件、病毒入侵、靜默安裝等。

可信引導(dǎo)

iOS設(shè)備開機(jī)后采用一種稱為可信引導(dǎo)的方式進(jìn)入系統(tǒng)。引導(dǎo)過(guò)程中,安全只讀內(nèi)存 (SecureROM) 是首先被引導(dǎo)的部分,其中嵌入了根證書 (Root Certificate)用以檢查下一步所加載組件的RSA簽名。 在隨后的每個(gè)步驟中,系統(tǒng)校驗(yàn)下一步驟所要加載組件的 RSA 簽名。這一信任鏈 (Chain of Trust) 保證了系統(tǒng)啟動(dòng)過(guò) 程中的所有組件沒有被破壞和修改。

沙盒機(jī)制

沙盒也叫沙箱,英文standbox,其原理是通過(guò)重定向技術(shù),把程序生成和修改的文件定向到自身文件夾中。在沙盒機(jī)制下,每個(gè)應(yīng)用程序都有自己的存儲(chǔ)空間,程序之間的文件夾不能互相訪問(wèn)。iOS系統(tǒng)為了保證系統(tǒng)安全,采用了這種機(jī)制。iOS 應(yīng)用程序在安裝時(shí),會(huì)創(chuàng)建屬于自己的沙盒文件,應(yīng)用程序不能直接訪問(wèn)其他應(yīng)用程序的沙盒文件,當(dāng)應(yīng)用程序需要向外部請(qǐng)求或接收數(shù)據(jù)時(shí),都需要經(jīng)過(guò)權(quán)限認(rèn)證,否則,無(wú)法獲取到數(shù)據(jù)。應(yīng)用程序中所有的非代碼文件都保存在沙盒中,比如圖片、聲音、屬性列表,sqlite數(shù)據(jù)庫(kù)和文本文件等。

數(shù)據(jù)加密

iOS4 及以后的系統(tǒng)使用數(shù)據(jù)加密機(jī)制來(lái)保護(hù)文件系 統(tǒng)中的系統(tǒng)和數(shù)據(jù)分區(qū)。系統(tǒng)和數(shù)據(jù)分區(qū)中的數(shù)據(jù)將由一 個(gè)基于硬件設(shè)備的密鑰進(jìn)行加密。在 iPhone3GS 以后的設(shè) 備上,該密鑰存儲(chǔ)于一個(gè)AES加密加速硬件上。這個(gè)基 于硬件的密鑰不能被 CPU 所訪問(wèn),只有在加解密時(shí)才能 由該加速器獲取。通過(guò)這種機(jī)制,直接從硬盤上被取走的 原始數(shù)據(jù)就無(wú)法被正確解密。同時(shí),數(shù)據(jù)加密機(jī)制還提供 了多種加密策略供應(yīng)用程序選擇。應(yīng)用程序可以選擇對(duì)一 些敏感文件使用NSFileProtectionComplete 策略而不是默認(rèn) 的 NSFileProtectionNone 策略加密數(shù)據(jù)。

瘋狂肆虐的電腦病毒幾乎都是針對(duì)Windows的,由于MAC的架構(gòu)與Windows不同,沙盒機(jī)制、使用人數(shù)少、研究成本大、對(duì)應(yīng)用安裝的管控力度,所以很少受到病毒的襲擊。

(正文已結(jié)束)

推薦閱讀:雅迪戰(zhàn)警x7

免責(zé)聲明及提醒:此文內(nèi)容為本網(wǎng)所轉(zhuǎn)載企業(yè)宣傳資訊,該相關(guān)信息僅為宣傳及傳遞更多信息之目的,不代表本網(wǎng)站觀點(diǎn),文章真實(shí)性請(qǐng)瀏覽者慎重核實(shí)!任何投資加盟均有風(fēng)險(xiǎn),提醒廣大民眾投資需謹(jǐn)慎!

網(wǎng)站簡(jiǎn)介 - 聯(lián)系我們 - 營(yíng)銷服務(wù) - 老版地圖 - 版權(quán)聲明 - 網(wǎng)站地圖
Copyright.2002-2019 寧夏資訊網(wǎng) 版權(quán)所有 本網(wǎng)拒絕一切非法行為 歡迎監(jiān)督舉報(bào) 如有錯(cuò)誤信息 歡迎糾正