THEOS踩坑。。。

馬萬旻發表於2018-06-28

編譯期間

在執行make指令編譯的時候,可能會出現大致如You do not an SDK的錯誤。這是因為沒有指定Xcode版本導致的。可通過以下程式碼檢視指定的Xcode預設版本導致的,可通過以下命令檢視是否指定預設版本。

$ xcode-select -p
複製程式碼

然後通過如下命令更改指定預設版本。 官方連結

$ sudo xcode-select -switch /Applications/Xcode.app
複製程式碼

如果有快取問題,可通過執行clean命令解決。

打包期間

在執行make package指令打包deb包的時候,如果出現IO::Compress::Lzma引發的錯誤,可通過如下兩種方式解決:

  • 修改dm.pldeb.mk檔案。

    1. 執行如下指令修改dm.pl檔案:
    $ vim $THEOS/vendor/dm.pl/dm.pl
    複製程式碼

    在檔案中找到如下兩行,註釋。

    # use IO::Compress::Lzma;
    # use IO::Compress::Xz;
    複製程式碼
    1. 執行如下命令,修改deb.mk檔案。
    $ vim $THEOS/makefiles/package/deb.mk
    複製程式碼

    將檔案中的_THEOS_PLATFORM_DPKG_DEB_COMPRESSION ?= lzma,修改為_THEOS_PLATFORM_DPKG_DEB_COMPRESSION ?= gzip

  • 為macOS安裝xz工具

    $ brew install xz 
    $ sudo cpan IO :: Compress :: Lzma
    複製程式碼

還有一個要注意的,進行初始化的時候,Package Name [com.yourcompany.wechatpwddemo]: 不能出現大寫字母。出現大寫字母的話,在編譯階段不會出問題,但是打包的時候會報錯。