2016-10-01 89 views
6

我很難在此找到任何信息。在提交到商店之前,Android自己會提到代碼混淆的問題。但是我從Apple或任何「第三方」提交清單之前都看不到這一點。我能找到的唯一類似問題是5年前關於Objective-C的一個類似問題,我只能找到1個關於iOS混淆的github庫。向Apple App Store提交時混淆Swift代碼是否是一種常見做法?特別是要隱藏任何私人API URL或API密鑰?蘋果公司有沒有Pro-Guard等同物?在提交給Apple App Store之前模糊Swift代碼

+1

什麼是混淆?您的Swift代碼在構建的應用程序的任何位置都不可見。 – matt

回答

7

Java被轉換爲可以反編譯的字節碼。

Swift是一種編譯語言,Clang編譯器經過高度優化。在發佈模式下,它會去除符號並進行大量優化,從而自行完成大量混淆處理。有編譯語言的反編譯器,但結果非常糟糕,難以閱讀。

+1

實際上,Xcode也將Swift代碼轉換爲Apple的一種稱爲bitcode的中間表示字節碼。但是,IIRC在將應用程序發送給客戶之前會被Apple剝離,並且該應用程序的編譯代碼也會被Apple加密。 Swift編譯器在發佈版本(包括代碼重新排序等)上執行的優化會執行一些混淆處理。 – hotpaw2

+0

@ hotpaw2,我不認爲應用程序的編譯代碼是加密的。它是代碼簽名的,目標設備的操作系統拒絕啓動應用程序,除非簽名(包括用戶的AppleID)簽出。 –

+0

從iOS App Store下載應用程序,並查看是否可以在zip文件中找到任何可見的ARM機器代碼。 – hotpaw2