美文网首页
Mac编译Cydia

Mac编译Cydia

作者: 龙马君 | 来源:发表于2016-07-08 15:05 被阅读259次

    编译环境

    1. Mac OSX 10.9.4
    2. 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文件

    Paste_Image.png

    常见问题

    1. 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
    
    1. 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
    
    1. 出现link问题的话,请执行
    make clean
    
    1. 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

    2. 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
    

    参考

    Cydia编译出错,求教……

    相关文章

      网友评论

          本文标题:Mac编译Cydia

          本文链接:https://www.haomeiwen.com/subject/vgfrjttx.html