ios 越狱 真机调试

ios 越狱 真机调试开发环境:Xcode4.5.2ios设备需要越狱并从Cydia安装appsync安装appsync步骤:1、找到安装的cydia,第一次运行将会弹出提示,选择开发者即可2、在工具栏中选择软件源(iphone/itouch选管理),然后点右上角的编辑3、点左上角添加4、输入源:http://yuan.duowan.com/(多玩的源),点添加源,等待添加完成,然后点返回C

大家好,又见面了,我是你们的朋友全栈君。

开发环境:Xcode 4.5.2 ios设备需要越狱并从Cydia安装appsync

安装appsync步骤:

1、找到安装的cydia,第一次运行将会弹出提示,选择开发者即可

2、在工具栏中选择软件源(iphone/itouch选管理),然后点右上角的编辑

3、点左上角添加

4、输入源: http://yuan.duowan.com/ (多玩的源),点添加源,等待添加完成,然后点返回Cydia,回到源界面,点击右上角的完成,完成源的添加。如果失败确认源地址后面是否加上/

5、选择刚才添加的源,选择合适版本的appsync安装即可。


注:如果列表中没有appsync可以用工具栏中的搜索,搜索appsync;另外cydia.hackulo.us源也可以


另:如果没有安装appsync的话,最后运行的话,会提示证书过期。

The identity used to sign the executable is no longer valid.

Please verify that your device’s clock is properly set, and that your signing certificate is not expired.


 


 

一、创建假证书

1、在Finder中找到Keychain Access(钥匙串访问)并打开。位置:Applications/Utilities

2、菜单->Keychain Access->Certificate Assistant->Create ACertificate,按下图设置。此处必须把Name改为iPhone Developer,Certificate类型设置为Code Signing,并将Let me override defaults选中,以后的步骤就不需要做任何的设置,全部默认或空着即可


二、修改Xcode的配置文件

需要修改SDKSettings.plist和Info.plist两个文件,网上说4.5之后必须用Xcode进行编辑,原因是这两个文件从原来的xml改为了二进制文件,经过试验用其编辑器也是可以的。另外需要修改这两个文件权限才进行修改,修改前最好备份下。

1、SDKSettings.plist:位置/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk

修改内容:DefaultProperties分支,将下面的CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED两个属性改为NO


2、Info.plist:位置/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform

修改内容:

1、将全部的XCiPhoneOSCodeSignContext修改成 XCCodeSignContext

2、在最后添加两项:

PROVISIONING_PROFILE_ALLOWED = NO

PROVISIONING_PROFILE_REQUIRED = NO

解释:将其中的iPhoneOS去掉


3、其他:二进制补丁

没有弄,猜测是4.x已经不再这个补丁了,至少是4.5.2不需要了


三、准备定自定义的生成脚本,需要机器能上网,在终端中执行如下命令

mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements

cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements

curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt

mv gen_entitlements.txt gen_entitlements.py

chmod 777 gen_entitlements.py


注:python的内容为:

#!/usr/bin/env python


import sys

import struct


if len(sys.argv) != 3:

print “Usage: %s appname dest_file.xcent” % sys.argv[0]

sys.exit(-1)


APPNAME = sys.argv[1]

DEST = sys.argv[2]


if not DEST.endswith(‘.xml’) and not DEST.endswith(‘.xcent’):

print “Dest must be .xml (for ldid) or .xcent (for codesign)”

sys.exit(-1)


entitlements = “””

<?xml version=”1.0″ encoding=”UTF-8″?>

<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>

<plist version=”1.0″>

<dict>

<key>application-identifier</key>

<string>%s</string>

<key>get-task-allow</key>

<true/>

</dict>

</plist>

“”” % APPNAME


f = open(DEST,’w’)

if DEST.endswith(‘.xcent’):

f.write(“\xfa\xde\x71\x71”)

f.write(struct.pack(‘>L’, len(entitlements) + 8))

f.write(entitlements)

f.close()


四、修改工程设置

特别注意:本阶段之前的修改配置文件、准备脚本等,只需要做一次。但本阶段的操作,对每个需要真机调试的工程都要做一遍。

这个步骤的主要作用是支持真机调试,如果不做这个步骤,仍然可以通过步骤5来生成ipa在真机上运行,但是无法使用Xcode内置的调试器对在真机上运行的程序进行单步跟踪。如果您的程序在点击Run真机调试时秒退,请检查此步骤是否正确完成。

1、禁用Xcode自动的签名操作,将工程配置中所有的Code Signing选项全部设为Don’t Code Sign

ios 越狱 真机调试


2、添加自定义的生成后脚本,在Build Phases中添加一个Phase,右下角的Add Build Phase,然后单击Add Run Script,脚本如下:

Xcode 4.1/4.2

export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate

if [ “${PLATFORM_NAME}” = “iphoneos” ] || [ “${PLATFORM_NAME}” = “ipados” ]; then

/Developer/iphoneentitlements401/gen_entitlements.py “my.company.${PROJECT_NAME}” “${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent”;

codesign -f -s “iPhone Developer” –entitlements “${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent” “${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/”

fi


Xcode 4.3/4.4/4.5

export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate

if [ “${PLATFORM_NAME}” = “iphoneos” ] || [ “${PLATFORM_NAME}” = “ipados” ]; then

/Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py “my.company.${PROJECT_NAME}” “${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent”;

codesign -f -s “iPhone Developer” –entitlements “${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent” “${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/”

fi


 


如此就可进行真机调试了


五、生成IPA文件

正常情况下IPA是从Xcode的Organizer中输出,但是没有开发帐号,没有证书,仍旧这样输出的话会产生错误。

可以用下面的办法生成IPA文件:

1、将代码生成为Release目标

2、打开工程输出文件夹:/Users/你的用户名/Library/Developer/Xcode/DerivedData/以工程名打头的文件夹/Build/Products/Release-iphoneos

3、把该目标下的app文件,拖到iTunes中

4、再从iTunes中拖到任何一个位置,就会变成ipa安装包

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145154.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DataGridView修改HeaderText

    dataGridView_htList为一个DataGridView(ht为HoverTree的缩写)方法一:dataGridView_htList.Columns["HtAddTime&

    2021年12月24日
    52
  • SOA、SOAP、RPC、REST、DUBBO的区别与联系[通俗易懂]

    SOA、SOAP、RPC、REST、DUBBO的区别与联系[通俗易懂]SOA、SOAP、RPC、REST、DUBBO的区别与联系

    2022年4月22日
    33
  • pycharm打包python项目_Python怎么打包

    pycharm打包python项目_Python怎么打包一、构建虚拟环境1.PyCharm终端中输入命令python-mvenvvenv2.刷新后产生venv文件夹二、创建解释器1.文件–>设置–>Python解释器2.添加所需模块(1)已经存在的模块(2)重新添加一个终端,这样就会将模块安装在虚拟环境中了(3)安装缺少的模块(4)安装打包模块pipinstallpyinstaller-ihttps://pypi.douban.com/simple/(5)打包程序p

    2022年8月26日
    6
  • C++函数指针详解

    C++函数指针详解1.定义每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针。2.语法指向函数的指针变量的一般定义形式为:数据类型(*指针变量名)(参数表);3.说明1)函数指针的定义形式中的数据类型是指函

    2022年6月22日
    27
  • Webdriver下载及使用

    Webdriver下载及使用Chrome浏览器驱动下载地址:http://chromedriver.storage.proxy.ustclug.org/index.htmlFirfox浏览器驱动下载地址:https://github.com/mozilla/geckodriver/releasesIE浏览器驱动下载地址:https://www.selenium.dev/downloads/Edge浏览器驱动下载地址:https://developer.microsoft.com/en-us/microsoft-edg…

    2022年9月19日
    4
  • QGIS 3.0 使用教程

    QGIS 3.0 使用教程网易云课堂:https://study.163.com/course/courseMain.htm?courseId=1005249002&utm_campaign=commission&utm_source=cp-400000000343054&utm_medium=share课程中所需要的数据和地图服务地址从这里下载:链接:https://pan…

    2022年6月16日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号