编译环境
- Mac OSX 10.9.4
- XCode 6.1
获取源代码
clone代码到本地,一定要加--recursive否则icu不会下载。
git clone --recursive git://git.saurik.com/cydia.git
Paste_Image.png
发现子模块SDURLCache下载不成功,进行手动更新;
进入SDURLCache,执行命令
git checkout
确保icu和SDURLCache模块有下载
此时全部代码已经更新完毕。
工具更新下载
主要根据Compiling.txt步骤来。
0) use a Mac (I'm sorry, I really am)
1) install the official Apple iOS SDK
2) install Fink (the only sane choice)
3) activate Fink (. /sw/bin/init.sh)
4) sudo fink install bash ldid sed tar wget xz
5) run ./sysroot.sh and wait a bit
6) type "make" to compile the executable
Mac 系统版本:10.9.4
XCode: 6.1
Fink安装参考上一篇文章Mac OSX10.10上安装Fink
执行sudo fink install bash ldid sed tar wget xz
执行./sysroot.sh
编译生成
执行make
正常的话,会生成MobileCydia文件。
执行
make package
生成cydia_1.1.26+_iphoneos-arm.deb文件
常见问题
-
MobileCydia.mm:30:10: fatal error: 'unicode/utrans.h' file not found
Paste_Image.png
原因:icu模块无更新下来
解决:重新clone一下
git clone --recursive git://git.saurik.com/cydia.git
- MobileCydia.mm:127:10: fatal error: 'SDURLCache/SDURLCache.h' file not found
![Upload Paste_Image.png failed. Please try again.]
原因:SDURLCache模块无更新下来
解决:在Cydia目录下,执行
git submodule init
git submodule update
或者进入SDURLCache,执行命令
git checkout
- 出现link问题的话,请执行
make clean
-
file is universal (2 slices) but does not contain a(n) armv6 slice:
Paste_Image.png
解决:修改makefile
把makefile里面的cycc = $(gxx) -arch armv6改成cycc = $(gxx) -arch armv7 -
sysroot/usr/include/WebKit/WebView.h:31:9: fatal error: 'AppKit/AppKit.h' file not found
Paste_Image.png
原因:系统SDK有关
解决:确保安装了XCode6.1,里面包含了MacOSX10.9.SDK
修改sysroot.sh文件,拷贝MacOSX10.9.SDK的库。
sdk109=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
for framework in ApplicationServices CoreServices IOKit IOSurface JavaScriptCore WebKit; do
ln -s "${sdk109}"/System/Library/Frameworks/"${framework}".framework/Headers "${framework}"
done
网友评论