Hiraku Dev
  • 消息新知
    • iPhone 情報
    • iPad 情報
    • Mac 情報
    • Jailbreak情報
  • 應用教學
    • iPhone 教學
    • iPad 教學
    • Mac 教學
    • 軟體教學
    • 開發技巧
    • 技術研究
    • WordPress 教學
  • 3C資訊
  • 心得交流
  • 站務公告
  • 粉絲專頁
  • 關於皮樂
  • 作品列表
  • 留言板

使用 SublimeClang 搭配 iOS tweak 的方法

2014/01/26 5 comments Article 開發技巧

因為個人用 Sublime Text 3 來寫 tweaks,

但是跟一般用 Xcode 寫 App 比起來,除了沒有自動補完之外,

也沒有在編譯前糾錯的功能。

 

不過 Sublime Text 的優點就是有很多外掛可以使用,

昨天弄了一整天,終於搞定了。

 

先來說我的開發環境:

系統跟編譯器還有 SDK 部分是 OS X 10.9 + Xcode 5 + iOS 7.0 SDK

Sublime Text 這邊是 3.0 ,搭配 theos logos 來寫 tweak。

 

首先,先在 Sublime Text 3 選擇 Preferences > Browse Packages …

然後在終端機 cd 到該目錄,輸入

1
2
3
git clone --recursive https://github.com/quarnster/SublimeClang SublimeClang
 
git pull && git submodule foreach --recursive git pull origin master

然後編譯 SublimeClang,或者在這邊下載我編譯好的檔案,

解開壓縮之後把兩個 dylib 丟進去剛剛的 SublimeClang/internals 裡面

 

之後到 Sublime Text 3 的 Preferences >  Package Settings > SublimeClang > Settings – Default

找到 options : 加入下面這段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//For logos
"-x",
"objective-c++",
"-c",
"-DTARGET_IPHONE=1",
"-O2",
"-include", "/opt/theos/Prefix.pch",
"-I", "/opt/theos/include/",
 
//For iOS
"-isystem", "/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/usr/include/",
"-isystem", "/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/usr/include/c++/4.2.1/",
"-I", "/Applications/Xcode.app/Contents/Developer/usr/lib/llvm-gcc/4.2.1/include",
"-arch","armv7",
"-isysroot", "/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk",
"-D__IPHONE_OS_VERSION_MIN_REQUIRED=__IPHONE_4_3",
"-miphoneos-version-min=4.3",

 

再找到 analyzer_commandline,加入下面這段

1
2
3
4
//Theos Logos
"/usr/bin/xcrun",
"-sdk", "iphoneos",
"clang++",

最後再找到 analyzer_extensions ,加上

1
2
3
4
"x",
"xi",
"xm",
"xmi"

就好了

 

不過這時候 theos logos 會被認為是錯誤,但自動補完的部分是正常的,

這時候你可以選擇發揮無視技能,或者按照接下來的教學做

 

 

去 SublimeClang/sublimeclang.py

找到 295 – 299 行,應該長這樣:

1
2
3
4
5
errString = "%s%s\n" % (errString, err)
if diag.severity == cindex.Diagnostic.Warning:
   warningCount += 1
elif diag.severity >= cindex.Diagnostic.Error:
   errorCount += 1

改成這樣

1
2
3
4
5
6
if not err.endswith("expected unqualified-id") and not err.endswith("missing context for method declaration"):
   errString = "%s%s\n" % (errString, err)
   if diag.severity == cindex.Diagnostic.Warning:
        warningCount += 1
   elif diag.severity >= cindex.Diagnostic.Error:
        errorCount += 1

 

再找到下面一點點的

1
2
add_error_mark(
     diag.severityName, filename, f.line - 1, diag.spelling)

 

改成這樣:

1
2
3
if not err.endswith("expected unqualified-id") and not err.endswith("missing context for method declaration"):
      add_error_mark(
           diag.severityName, filename, f.line - 1, diag.spelling)

 

就好了,重要的是主要注意原本的 code 那邊 tab 要空好就行了

 
參考資料:

在 Sublime Text 3 中使用 SublimeClang 插件

SublimeText 2をiOS向けにカスタマイズ:コード補完,構文エラー表示

SublimeClang user preferences json for iOS + theos

分享文章:

  • Tweet
  • Pocket
  • Telegram
  • 更多
  • 列印
  • 電子郵件
  • 在 Tumblr 上分享
  • WhatsApp

相關

Tags: clang, logos, sublime text, sublimeclang, theos, tweak, XCode

5 comments

  • Johnny 2014/01/30 at 13:29:56 - 回覆

    皮樂你好,
    我想請問一下make package install的時候
    每次都要輸入一次ssh的密碼…

    想請問有沒有辦法自動輸入or跳過這個步驟
    不然每次make都要輸入一次,好麻煩XD

    • 皮樂 2014/02/19 at 20:22:20 -

      https://hiraku.tw/2012/03/2864/

  • coltor 2014/03/27 at 20:27:55 - 回覆

    非常感谢你的文章,能帮我解决在sublimeText 开发tweak的问题~

  • uuu 2014/03/31 at 13:27:18 - 回覆

    download link 遺失了 0.0

    • 皮樂 2014/04/15 at 02:15:37 -

      不小心打錯了,現在好了

發表迴響 取消回覆

搜尋

熱門文章

  • 漢語拼音輸入法~學習篇
  • iPhone 7 Plus 使用十天後的簡易心得
  • Mini Display Port 轉接線不等於 Thunderbolt 轉接線
  • 巫師三 全破兩輪簡易心得
  • 人人都能吃後悔藥 - 舊版 iOS App 下載方法

粉絲專頁

粉絲專頁

部落格統計

  • 2,600,499 個點閱數

About

創用 CC 授權條款

本站開站至今已有 天

Copyright Hiraku Dev 2019 - Theme by ThemeinProgress

loading 取消
文章未送出─請檢查你的電子郵件地址!
電子郵件地址檢查失敗,請再試一次
抱歉,你的網誌無法透過電子郵件分享