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安装包

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • ubuntu安装rabbitvcs[通俗易懂]

    ubuntu安装rabbitvcs[通俗易懂]安装RabbitVCS的方法步骤如下:第一步:将rabbitvcs的添加到源里面。(次操作会提示是否要添加到源里面,点击ENTER添加,Ctrl+C不添加),这里选择ENTER方便更新。sudoadd-apt-repositoryppa:rabbitvcs/ppa第二步:根据第一步的情况来是否跳过该步骤,如果第一步出现导入key,那第二步可以跳过,否则需要导入keysudo

  • 什么样的水平才算是java高级工程师?

    什么样的水平才算是java高级工程师?「高级工程师」这个词听起来就好像是逼格高的意思,事实上,这是个模糊概念,高不高级没有个标准。做高级的工作才算是高级、还是说职称上带有「高级」字样。我所见过的一些所谓高级的职位或是头上写着高级的人,明明是对这个词的蔑视。每个人对高级的理解都是不一样的,下面就以我理解的高级工程师进行回答,不一定只适合“Java”方面的,如果一个工程师只是局限在一种语言内的“高级”实际上并不会太高级。Java,这个…

  • 代码规范 自定义 Exception

    代码规范 自定义 Exception

  • 安卓获取sha1_android获取真实时间

    安卓获取sha1_android获取真实时间此文介绍AndroidStudio中获取SHA1的方法。获取开发中的SHA1:在右侧找到菜单栏“Gradle”—>”APP名”—>“Tasks”—>“android”—>双击“signReport”即可。这时生成出来的只是debug的SHA1和MD5值:获取:获取发布版本的SHA1:请自行生成签名文件,打开androidst…

  • jpa的save方法_save与preserve的区别

    jpa的save方法_save与preserve的区别JPA中save和saveAndFlush的区别,首先直接看图:save是CrudRepository下的。saveAndFlush是JpaRepository下的。一般情况下save就足够了,但是如果在同一个transaction里,比如你在方法上标了@Transactional,这时你想先保存Order,然后直接在这个Transaction里保存OrderItem,但是Orde…

    2022年10月20日
  • 网络性能优化常用方法有_防御网络监听常用方法是

    网络性能优化常用方法有_防御网络监听常用方法是1.减少页面请求按需加载合并压缩文件将小图标合并成雪碧图字体图标dataURL内置图片2.优化网络链接cdn,减少dns查询,避免服务器端重定向3.减少下载量压缩css图片混

发表回复

您的电子邮箱地址不会被公开。

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