Quantcast
Channel: 應用教學 – Hiraku Dev
Viewing all articles
Browse latest Browse all 94

iOS tweak 支援 arm64 的小技巧整理

$
0
0

新年第一天寫個一篇小整理,一方面怕自己忘記,

一方面幫助其他開發者找出一些問題。

 

首先,參考 iPhone Development Wiki 的教學,上面寫的落落長

其實就簡單兩件事,第一個是改 makefile:

ARCHS: armv6 arm64
TARGET := iphone:7.0:2.0

加到 makefile 的 include 前面

不過我都設不一樣,一來是我在 4.2 以前還不會寫程式,所以根本沒有需要支援 XD

二來是我這些東西應該也沒有要支援 armv6 的必要,

所以除了 armv6 改成 armv7 外,TARGET 也改成:

TARGET = :clang::5.0

視情況有些會用 6.0,這樣的話不必支援太低版本的 SDK,出問題會比較簡單一些

 

第二件事情很重要,就是重新下載 theos 、ldid 跟 libsubstrate.dylib

尤其是如果之前有用過非官方的 libsubstrate 的話,一定要重弄

因為我就浪費了一天去 debug,結果最後發現是非官方 libsubstrate 有問題。

如果你很懶的話,記得參考 r-plus 的安裝 script ,直接安裝好。

 

即使 compile 完之後,記得還要做幾件事:

1. 在 arm64 的機器上面測試

2. 在 armv7 的機器上面測試(推薦 iPhone 4)

3. 在 iOS 6 上面測試(推薦 3GS、iPhone 4)

4. Preferences Bundles 要測試(如果有的話)

5. 重新抓 UDID (如果你有要用的話)

 

因為有些東西你用 arm64 compile 完之後在 armv7 可能會出問題

 

所以記得,交叉測試是必須的…不然會跟我一樣整天推送 update OAQ…

如果真的不行的話,再去動 makefile,去弄兩個 binary 出來,

確定 arm64 的版本跟 armv7 的版本分別可以正常執行,然後在 postinst 放這個指令:

export version=$(dpkg -s cy+cpu.arm64 | grep Version | sed -e 's/Version: //')
if [[ $version == 0 ]]; then
	echo "arm64"
fi

從 deb 的 postinst 下手,讓 arm64 的去安裝不同檔案即可,這樣是有點小作弊啦

不過如果在還沒有辦法解決相容性的情況下,這樣做可以讓東西趕快先上線。

以上就是簡短心得,歡迎交流(?


Viewing all articles
Browse latest Browse all 94

Trending Articles