Xcode 6 免证书真机调试
前景:在 iOS 开发中,如果想进行真机调试,普遍情况是掏钱,掏钱的情况有两种:
第一种就是:直接在 Apple 官网注册为 Developer,每年99美元;当然这种作为个人开发者的话,是很有必要的,不仅可以真机调试,而且可以发布用于测试和正式上架的 App。而且现在最新政策,iOS 和 OS X 开发的缴费也合并为一块了,还是每年99美元,对于即搞 iOS 又搞 OSX 开发的朋友来说,这是好福利啊。
第二种就是:万能的淘宝里,买别人针对设备来收费的测试证书,价钱普遍10-15块左右。资源分享这是好的,对只是测试时真机调试用已经足够了。
不掏钱的情况也有两种:
第一种就是:最新发布的Xcode 7 beta 版本支持 Apple ID 普通账号使用免费证书进行真机调试,不像之前版本只是支持 Apple ID 开发者账号。但个人亲测,Xcode 7 beta 版本使用有点问题(纯粹个人问题),其实还是挺好用的,所以暂时还是使用稳定版的Xcode 6。
第二种就是:修改Xcode 6 的包内容,避开 Apple 的证书验证机制,这里就来介绍这种做法吧。
准备工作:
(1)一台越狱的设备,这里我用 iOS 8.1 版本已越狱的 iPhone 6 来测试;
(2)设备已安装支持未认证安装App的 AppSync 插件;这里可以在已越狱的设备中通过 Cydia 添加威锋源:http://apt.weiphone.com,下载适合版本的 AppSync 插件。
关键步骤如下:
(1)创建证书
然后点「继续」,全部默认,一直下一步,直到创建完成。
(2)修改 Xcode 6 的包内容
考虑可以先备份 SDKSettings.plist文件,然后拷贝一份到其它目录下,修改完相关设置了再覆盖。
SDKSettings.plist 有两处地方需要修改为 NO,就是「DefaultProperties」下的「ENTITLEMENTS_REQUIRED」和「CODE_SIGNING_REQUIRED」项;
同理,返回上一层目录,Info.plist 有三处地方需要修改为 XCodeSignContext,分别是「DefaultProperties」下的「CODE_SIGN_CONTEXT_CLASS」项、「RuntimeRequirements」下的「Classes」「Item 0」项、「OverriderProperties」下的「CODE_SIGN_CONTEXT_CLASS」项。
(3)需要创建 iphoneentitlements 文件夹,新建 gen_entitlements.py文件,并拷贝 iphoneentitlements 文件夹到 “/Applications/Xcode.app/Contents/Developer/” 目录下
PS:可以在终端使用 mkdir 创建文件夹,cd 导航到某目录下,mv 重命名文件
gen_entitlements.py 内容:
1 #!/usr/bin/env python 2 import sys 3 import struct 4 if len(sys.argv) != 3: 5 print "Usage: %s appname dest_file.xcent" % sys.argv[0] 6 sys.exit(-1) 7 APPNAME = sys.argv[1] 8 DEST = sys.argv[2] 9 if not DEST.endswith('.xml') and not DEST.endswith('.xcent'): 10 print "Dest must be .xml (for ldid) or .xcent (for codesign)" 11 sys.exit(-1) 12 entitlements = """ 13 <?xml version="1.0" encoding="UTF-8"?> 14 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 15 <plist version="1.0"> 16 <dict> 17 <key>application-identifier</key> 18 <string>%s</string> 19 <key>get-task-allow</key> 20 <true/> 21 </dict> 22 </plist> 23 """ % APPNAME 24 f = open(DEST,'w') 25 if DEST.endswith('.xcent'): 26 f.write("\xfa\xde\x71\x71") 27 f.write(struct.pack('>L', len(entitlements) + 8)) 28 f.write(entitlements) 29 f.close()
在终端输入如下命名来给文件设置访问权限(下一步时会无回显方式要求输入密码):
1 sudo chmod 777 /Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py
(4)针对需要进行真机调试的 App 工程,进行如下设置:
Script内容:
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
转载于:https://www.cnblogs.com/huangjianwu/p/4573916.html
Xcode 6 免证书真机调试相关推荐
- Xcode 5免证书真机调试
今天带来的是 IOS 7 Xcode 5 免IDP证书的真机调试.说白了就是穷,不想给苹果交那$99的钱. 注意:虽然可以用这个方法实现真机调试,不过不能实现向Apple store 发布APP,其次 ...
- Xcode7免证书真机调试
Xcode7免证书真机调试 前言 在"远古"时代,困扰苹果开发者的是要花那99刀(当然,在天朝,有万能的淘宝,貌似只需14块钱)才能进行真机调试,这久简介的提高了开发者的门槛.而今 ...
- 【原】xcode5IOS7及以下版本免证书真机调试记录
搞了有一段IOS开发了,之前一直在企业做,近阶段主要在公司做C++服务端开发,打算在空闲实现搞搞个人开发,为自己赚钱,IDP还没申请下来,所以先用此方法在越狱设备上先做一下app的免证书真机调试,先记 ...
- XCode7以上免证书真机调试教程
在Xcode 7中,苹果改变了自己在许可权限上的策略,此前Xcode只开放给注册开发者下载,但Xcode 7改变了这种惯有的做法,无需注册开发者账号,仅使用普通的Apple ID就能下载和上手体验.此 ...
- Xcode7无证书真机调试 Xcode Could ont lauch XXX process launch failed:security
http://blog.csdn.net/crazyzhang1990/article/details/48544543 之前一直听说xcode7之后可以不需要99美刀的开发者账号就可以真机调试.感觉 ...
- 使用Xcode 7 beta免费真机调试iOS应用程序
今天凌晨的WWDC15虽然没有熬夜守候吧,但也还是早起第一时间翻看了twitter的相关标签,发现比较实惠的一点就是新的Xcode 7可以在不加入每年99刀的Apple Developer Progr ...
- XCode - 无法对iPhone真机调试的解决方法!
XCode - 无法对iPhone真机调试的解决方法! 参考文章: (1)XCode - 无法对iPhone真机调试的解决方法! (2)https://www.cnblogs.com/sunylat/ ...
- IOS 7 Xcode 5 免IDP证书 真机调试
今天带来的是 IOS 7 Xcode 5 免IDP证书的真机调试.说白了就是穷,不想给苹果交那$99的钱. 注意:虽然可以用这个方法实现真机调试,不过不能实现向Apple store 发布APP,其次 ...
- IOS 7 Xcode 5 免IDP证书 真机调试(转载)
最近转开发了,真的很久没有更新博客了,今天有空写一篇吧. 今天带来的是 IOS 7 Xcode 5 免IDP证书的真机调试.说白了就是穷,不想给苹果交那$99的钱. 注意:虽然可以用这个方法实现真机调 ...
最新文章
- 异步编程之Promise(2):探究原理
- 一图看尽全生态, 2018区块链产业云图重磅发布
- Python标准库 数学与随机数 (math包,random包)
- 【算法】一个简单的决策树(DT)原理
- 列表生成式、生成器、迭代器
- [NOI2018]你的名字
- 【Kafka】kafka replication factor : 3 larger than avaiable brokers:2
- python两个数组合并、找出中位数_leetcode刷题记录-找出这两个有序数组的中位数(python版本)...
- java中 resource_Java中如何获取resource的源码分析
- 一元多项式计算器_人教版初中数学七年级上册——去括号、去分母解一元一次方程公开课优质课课件教案视频...
- C# WinForm开发系列 - Form/Window
- 微信小程序获取当前位置 地图定位导航-详细代码
- 维修技术论坛万能预装系统 v5.0
- win10只能发现部分计算机,Win10的隐藏小秘密,被我发现了
- 小工具二:报文比对工具
- nvidia驱动安装,屏幕偏移调整,及屏幕刷新率解决办法(摘自:中国Linux公社)
- 专利学习笔记8:解决CPC签名失败问题
- Android项目集成谷歌账户登录
- 社恐怎么办?这个漫画或许能治愈你
- Codeforces Round #835 (Div. 4) B. Lost Permutation
热门文章
- android banner 高度,Android Banner 的简单使用步骤
- 计算机桌面程序经常打不开了,电脑开机后桌面软件打不开怎么办
- 系统学习深度学习(三十九)--基于模型的强化学习与Dyna算法框架
- 孙鑫-MFC笔记一--Windows程序内部运行机制
- python为什么会出现无响应怎么办_python定时检测无响应进程并重启的实例代码
- 变长编码中前缀码的概念
- c++反转字符,算法优化与实现
- 【洛谷 P4291】 [HAOI2008]排名系统(Splay,Trie)
- Nginx如何实现读写限流的方法
- Lync Server 2010迁移至Lync Server 2013部署系列 Part7:配置Office Web App 02