Xcode5.1和IOS8.3真机调试
发布日期:2021-10-04 02:53:18 浏览次数:3 分类:技术文章

本文共 3987 字,大约阅读时间需要 13 分钟。


……搞了几个小时终于把写的app装入到ios中,真心不容易,主要是不小花那99$,没办法,辛苦点就辛苦点吧。写的demo运行在自己的爱疯上,有点小激动,就像当初写的demo安装到android上。

准备的工具

1:Xcode5.1

2:越狱的iphone一台(如果不越狱那就准备99刀给苹果公司吧)

主要步骤

1:自己给自己创建一个证书用于为生成的程序签名,如android的签名钥匙。

2:修改工程配置以及Xcode的配置文件和二进制文件以阻止其验证和签名。
3:通过自定义生成步骤,用伪造的证书为应用程序签名。

注意:这里说明下为什么要越狱的爱疯,因为你调试的程序使用的是你自己的签名,但是呢,iphone不承认你的这个签名,所以需要安装一个补丁包来安装你的app,这个补丁包就是AppSync,当然这个可以在Cydia里面下载安装到(在软件源中“添加”一个软件源,地址:http”//cydia.iphonecake.com/—>选择插件—>AppSync Unified下载安装就好了),这里不同版本的ios系统有不同的Appsync


第一步:创建证书

打开Finder—>实用工具—>打开“钥匙访问串.app”—>点击最上面导航栏的“钥匙访问串“(苹果标志旁边)—>证书助理—>创建证书.

这里主要注意:第一个步骤比较重要,必须要把名称命名为iPhone Developer,将类型设定为代码签名,将“让我覆盖这些默认值”选中。其他的默认就好,点击继续,下一步,继续完成就好了。
这里写图片描述


第二步:修改Xcode的配置文件

在操作之前请首先将Xcode按Command+Q完全关闭。

1:使用命令终端进入iPhone SDK目录

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/

注意:不同版本的Xcode只是最后的版本号不同。在Xcode 5.0中是iPhoneOS7.0.sdk或者iPhoneOS7.1.sdk,更改下版本号就可以了。

2:终端备份原文件

sudo cp SDKSettings.plist SDKSettings.plist.orig

3:编辑配置文件

首先要打开这个文件所在目录(命令):

open .

操作:在弹出的Finder窗口中双击SDKSettings.plist,会启动Xcode的图形界面,我们展开DefaultProperties分支,将下面的CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED两个属性改为NO

4:编辑另外一个配置文件

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platformsudo cp Info.plist Info.plist.origopen .

在中端打开文件目录,在弹出的Finder窗口中双击打开Info.plist。将全部的XCiPhoneOSCodeSignContext修改成XCCodeSignContext,共有3处。分别在DefaultProperties分支下、RuntimeRequirements分支下和OverrideProperties分支下。

以上的步骤就对IOS 的SDK修改完成,这里只需要修改一次就好了。


第三步:准备自定义的生成脚本

保证电脑联网情况下在终端输入命令:

mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlementscd /Applications/Xcode.app/Contents/Developer/iphoneentitlementscurl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txtmv gen_entitlements.txt gen_entitlements.pychmod 777 gen_entitlements.py

如果电脑不能连接网络则需要手动创建一个gen_entitlements.py文件在iphoneentitlements文件夹里面,其中gen_entitlements.py文件内容为:

#!/usr/bin/env pythonimport sysimport structif 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 = """
application-identifier
%s
get-task-allow
""" % APPNAMEf = 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()

第四步:修改工程设置

这里的话就需要每次创建项目都需要修改一次了,没办法,为了那99刀,还是习惯性的做吧。

这个步骤的主要作用是支持真机调试,如果不做这个步骤,仍然可以通过步骤5来生成ipa在真机上运行,但是无法使用Xcode内置的调试器对在真机上运行的程序进行单步跟踪。
1:禁用Xcode自动的签名操作
将工程配置中所有的Code Signing选项全部设为Don’t Code Sign,如图。
这里写图片描述

2:添加自定义的生成后脚本 在Build Phases中添加一个Build Phase,输入以下脚本

export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocateif [ "${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

在xcode5中需要点击导航条的Editor中添加,如图:

这里写图片描述

到这里,就基本上配置完成了,然后接下来就该iphone上场了,终于爱疯要上场了。


连接真机调试

1:在xcode界面情况下,找到MAC的顶部导航条,找打Window–>点击Organizer,界面如下:

这里写图片描述

这里因为我的手机已经是连接成功了,所以显示的是这些,如果是第一次连接真机,那么在左边的那一栏中,显示你的手机应该是”灰色的“,这个时候你选择你的iphone,然后右边会出现一个进度条,进度小下面有一个按钮”Use for Development“,点击该按钮,如果没出现,则重新拔插下手机,在进来就好了。点击”Use for development“ 会出现会要求输入Apple ID的对话框,直接点击取消cancle,

这时启用设备开发模式的进程会立即终止。设备名称旁边应该有一个黄灯。此时重新插拔设备,Organizer中会出现一个进度条),等这个进度条跑完,小灯就会变成绿色。这表示已经连接成功了!

好了,爱疯已经连接成功了,接下来就使劲爱疯狂吧,运行一个demo到手机:

这里写图片描述

选择自己的设备,然后点击运行,xcode就编译程序,然后安装到手机,这过程中会出现提示 是否运行访问我们创建的 ”钥匙访问串“,这里选择允许。

FAQ:在运行过程中如果出现了类似

The identity used to sign the executable is no longer valid.这个错误,那这里一般都是你的iphone里面的AppSync不能兼容你的系统,可能需要更新下就ok了,到这里就完成了真机调试了,最后上张效果图
这里写图片描述

ps:这里感谢提供参考资料。

转载地址:https://blog.csdn.net/leifengpeng/article/details/46811201 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android使用第三方或者自制字体库(Typespace)
下一篇:Android多任务断点下载

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月30日 13时48分43秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章