作者 | Maxence
譯者 | 孫薇,責(zé)編 | 屠敏
頭 圖 | CSDN 下載自東方 IC
以下為譯文:
大家好,我是本文筆者M(jìn)ax,一名JS開(kāi)發(fā)者。在沒(méi)有任何蘋(píng)果硬件,沒(méi)有Hackintosh的情況下,我是怎么編寫(xiě)IOS應(yīng)用的,本文就來(lái)介紹一下。
是否需要一個(gè)內(nèi)置應(yīng)用?
在繼續(xù)前,可能需要問(wèn)問(wèn)自己,你是否需要一個(gè)應(yīng)用?漸進(jìn)式Web應(yīng)用(PWA)已經(jīng)發(fā)展良久,目前隨時(shí)可用。如今的iOS 13對(duì)PWA的支持更好,預(yù)算不高的情況下,這個(gè)方案值得考慮。但請(qǐng)注意:iOS PWA無(wú)法處理推送,也不支持后臺(tái)運(yùn)行,算是個(gè)可選方案,但大多數(shù)情況下你還是需要內(nèi)置應(yīng)用。
假如你在開(kāi)發(fā)PWA,或只是個(gè)響應(yīng)式網(wǎng)站的話(huà),沒(méi)有mac還會(huì)有很多在線(xiàn)可選方案,用以在iOS模擬器甚至真實(shí)設(shè)備上測(cè)試你的應(yīng)用,如https://www.browserstack.com/ 或者 https://App.lambdatest.com/。當(dāng)然,也可以減少瀏覽器,用所配的移動(dòng)開(kāi)發(fā)工具只測(cè)試網(wǎng)站的響應(yīng)式布局,不過(guò)最終還是要返回真實(shí)設(shè)備進(jìn)行測(cè)試。
使用遠(yuǎn)程macOS
對(duì)于基于Objective-C或Swift的iOS應(yīng)用開(kāi)發(fā)者來(lái)說(shuō),或許會(huì)有mac。但沒(méi)有的話(huà),還是有解決方案的:即使用遠(yuǎn)程macOS。網(wǎng)絡(luò)上有一些公司提供遠(yuǎn)程訪(fǎng)問(wèn)Mac的途徑,借助RDP、VNC,甚至直接用瀏覽器來(lái)訪(fǎng)問(wèn)。對(duì)于此類(lèi)解決方案,我并沒(méi)有太多經(jīng)驗(yàn),但確實(shí)用過(guò)macinacloud,并且體驗(yàn)良好。如果你也打算將其用作主要的開(kāi)發(fā)平臺(tái),建議使用16GB的RAM,尤其是針對(duì)模擬器使用時(shí)。
如果沒(méi)有mac,但有臺(tái)用于調(diào)試應(yīng)用的iOS設(shè)備的話(huà),有兩種選擇:
使用TestFlight,可以用自己的設(shè)備在Mac上構(gòu)建應(yīng)用并分享。這是最易設(shè)置的遠(yuǎn)程USB連接。方案理念是采用軟件,將你的USB連接自本地計(jì)算機(jī)轉(zhuǎn)發(fā)至遠(yuǎn)程mac上。其他供應(yīng)商我不太了解,但使用macinacloud的話(huà),需要使用外部工具,相關(guān)文檔中有說(shuō)明。
使用Expo應(yīng)用
想要開(kāi)發(fā)具有脫機(jī)支持及通知功能的移動(dòng)應(yīng)用,或者只想在Apple Store中可見(jiàn)的話(huà),還有另一個(gè)方案,無(wú)需擁有mac,也無(wú)需Xcode,即Expo。
我在JS開(kāi)發(fā)上的經(jīng)驗(yàn)已有10年,2015年我開(kāi)始在React中進(jìn)行編碼,因此肯定會(huì)先入為主,但這套是我當(dāng)前在用的設(shè)置,深受我喜愛(ài)。
Expo是基于React-Native的一套工具,旨在協(xié)助我們輕松創(chuàng)建React-native的應(yīng)用。這些工具改進(jìn)極快,因此如果數(shù)月前你曾嘗試過(guò),并遇到了一些bug或者問(wèn)題的話(huà),應(yīng)該再試一次。自2019年6月Expo 33發(fā)布以來(lái),到了現(xiàn)在,我們可以在iOS和Android設(shè)備上呈現(xiàn)自己的React-native應(yīng)用了,不過(guò)還是以網(wǎng)頁(yè)形式。這也是開(kāi)發(fā)者可選的上佳方案。
此外,Expo附帶了Expo客戶(hù)端。借助這個(gè)客戶(hù)端,我們可以將自己的React-native代碼分發(fā)到iOS設(shè)備上。實(shí)時(shí)重載和遠(yuǎn)程調(diào)試讓開(kāi)發(fā)體驗(yàn)良好。
連iOS設(shè)備都沒(méi)有?Expo還有個(gè)服務(wù)器端,可用于構(gòu)建自己的應(yīng)用程序包。當(dāng)然,在交付給用戶(hù)及上傳到AppStore之前,還是需要測(cè)試的。目前我在使用Appetize,允許在iOS模擬器上運(yùn)行Expo所提供的程序包。
需要在真實(shí)設(shè)備上運(yùn)行?BrowserStack也提供支持。
原文:https://hackernoon.com/no-mac-no-problem-how-to-write-native-ios-apps-sans-apple-tma73wqf