从安卓到IOS,从  eclipse 到xcode跨度还是比较大的。在研究的过程中发现,许多时候不仅仅是C,C++,JAVA和OBJECT-C的区别,相对于编程语言来说,操作习惯和开发工具带来的困惑要更大。常规的回到桌面,文件管理,复制,粘贴,切换输入法,已经让人有些不舒服了。而  xcode的使用也比较痛苦,既不同于ECLIPSE,也不同于NET,也没有找到可以使用终端开发的方法。由于版本的不同,再也没有比在一堆菜单和设置选 项中翻来翻去更痛苦的事了。不过后来找到了不少和LINUX相类似的终端命令 ,才使 我终于在开发中松了一口气,开发的效率才有了一些保证。不同操作系统平台原始级的字符操作界面是如此的相似,这也许可以解释为什么在强力IDE时代,为什么还有人喜欢抱着巴掌大的黑窗口不放的原因吧。各种操作平台的提供了差不多一致的命令和相似的操作,熟练掌握一套,遇到其他系统也可以差不多八九不离十的使用了,甚至不需要去阅读MAC使用手册。

xcode 4.6是比较新的xcode  版本,与以后的版本变化比较大,网上很多资料不太准确。

第一步:制作证书

1)打开   Finder->应用程序->实用工具 ->  钥匙串访问

2)单击:"钥匙串访问"选择  "证书" 再选择"创建证书"过程如下图:

注意:证书名称必须填写为 iPhone Developer,在4.6中,几乎一步就完成了,不需要做什么特殊设置,默认就一步通过。其他版本不是这样,需要设置邮箱,密钥长度,用途等。

第二步:修改XCode配置文件

1)修改SDKsettings.plist文件

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

打开该目录下的SDKSettings.plist文件,把CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED的值改成NO

注:A。这是4.6的配置文件路径,其他版本似乎在别的路径,如:/Developer/Platforms/iPhoneOS.platform,B。最好先把SDKSettings.plist备份,以保证在修改出错时能够还原。即使 你不会犯错,最好还是备份下,以后如果拿到了开发者帐号,成了正规军后,这个仍然可以用于还原。可以使用CP命令做一副本。C。如遇到文件无法解锁没有权限不能修改,可以在终端使用sudo -i切换到ROOT,然后使用chmod修改该文件属性为A+X 

2)修改Info.plist文件

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/

用XCode打开该目录下的Info.plist文件,右击--Add Row,增加两项:

PROVISIONING_PROFILE_ALLOWED 值为 NO

PROVISIONING_PROFILE_REQUIRED 值为 NO

3)将上面Info.plist文件中的 "XCiPhoneOSCodeSignContext" 替换成 "XCCodeSignContext"(共3处)
分别在DefaultProperties分支下、RuntimeRequirements分支下和OverrideProperties分支下。

注:A。Info.plist在修改之前,最好做一个备份,以用于还原。B。在4.6中是一个二进制文件,必需使用XCODE 编辑,如果修改不成功,同样先使用ROOT权限chmod修改这个文件属性为A+X

第三:设置gen_entitlements.py脚本权限

 

注:如果你的电脑联网了,那么执行1)的命令后会在相应的目录自动创建iphoneentitlements文件夹及其下的gen_entitlements.py文件,如执行后没有生成指定文件,请重复执行下面的命令或者换第二种方法,两种生成脚本文件的方法任选一种。

1)在终端执行如下命令:

mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements
cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txtmv gen_entitlements.txt gen_entitlements.py
sudo chmod 777 gen_entitlements.py

这几行指领就是创建一个 gen_entitlements.py的文件,内容从网络获取。

2)上面的命令执行成功之后,会在/Applications/Xcode.app/Contents/Developer/目录下生成一个iphoneentitlements文件夹和其下的gen_entitlements.py文件,如果你的电脑没有联网或者不能自动生成相关目录文件,那么需要手动在相应的目录创建指定的文件,随后需要给gen_entitlements.py设置权限。

gen_entitlements.py脚本文件的内容如下:

#!/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()

第四步:修改项目属性

1)点击项目图标,找到"Build Settings"选项下的"Code Sign Identity",将其值全部改为"Don't Code Sign"

这是不使用系统签名,后面使用我们自己第一步创建的答名

2)切换到Build Phases选项,点击右下角的Add Build Phase,然后单击Add Run Script,然后在Run 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

第五步:连接设备(iphone/ipad)

点XCode右上角的Organizer图标,然后选中你的设备,在右边窗口中点击“Use for Development” 即可,此时你的设备名称旁边应该显示黄色的小灯,重新拔插数据线,Organizer中会出现一个进度条,等这个进度条跑完,小灯就会变成绿色,开发模式已经启用。

第六步:打包应用程序,生成ipa文件

在xcode上选择product菜单,选择Build For ---> Build for Achiving,就能成一个APP文件了。

然后把这个APP文件拖到itunes,就可以生成一个ipa文件,IPA可以分发给你的朋友和客户或者认识的人,让他们帮你测试程序。

参考:

http://blog.csdn.net/abcddtt/article/details/9074099

http://www.cnblogs.com/flyingzl/articles/2207717.html

http://kqwd.blog.163.com/blog/static/4122344820117191351263/

xcode 4.6 破解及真机调试的更多相关文章

  1. IOS 7 Xcode 5 免IDP证书 真机调试(转载)

    最近转开发了,真的很久没有更新博客了,今天有空写一篇吧. 今天带来的是 IOS 7 Xcode 5 免IDP证书的真机调试.说白了就是穷,不想给苹果交那$99的钱. 注意:虽然可以用这个方法实现真机调 ...

  2. Xcode 5、Xcode 6 免证书真机调试

    我们都知道,在iOS开发中,假设要进行真机调试的话是须要苹果开发人员账号的.否则Xcode就不可以进行真机调试.仅仅可以在模拟器上执行:这就带来了非常多问题,比方iCloud编程的话你不可以用模拟器. ...

  3. iOS 12 真机调试 Xcode 9 提示 Could not locate device support files.

    升级 iOS 12 之后,使用 Xcode 9 真机调试会提示错误: Could not locate device support files. This iPhone 6 Plus is runn ...

  4. IOS开发-phonegap及免证书及真机调试

    回头补记(Last edited at 2015.5.24). 第一步:建立项目 参见:Xcode5 + phoneGap2.9搭建ios开发环境 下载phonegap2.9.1,解压. 命令行,进入 ...

  5. XCode破解真机调试

    XCode破解真机调试  3.0 一.这样做以后能怎样 以device模式编译出app 可以再越狱后的设备上运行 二.要会点什么 命令行,也就是terminal.终端.控制台... vim 三.开始吧 ...

  6. Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略

    原创文章,欢迎分享:未经许可,不得转载:版权所有,侵权必究 开发环境使用的是目前为止最新的稳定版软件:Mac OS X Lion 10.7 + Xcode 4.1 目前Xcode 4.2 Previe ...

  7. iOS真机调试 for Xcode 5

    由于Xcode5的到来,关于iOS软件进行真机调试方面,有了一些变化,苹果在Xcode 5中修改了一些规则,一方面是阻止以往破解的方式进行调试(免证书).另一方面是添加了自动生成证书的功能特性,来加快 ...

  8. Xcode4.5.1破解iOS免证书开发真机调试与ipa发布

    开发环境使用Mac OSX Mountain Lion 10.8 + Xcode 4.5.1,iOS设备需要越狱并从Cydia安装AppSync.Xcode4.5.1的安装破解详细步骤如下: 第一步, ...

  9. Xcode真机调试报错(证书的签发者无效)

    Xcode真机调试时报错: dyld: Library not loaded: @rpath/libswiftAVFoundation.dylib Referenced from: /var/mobi ...

随机推荐

  1. usb 转 uart cp210x 驱动解析

    USB 转 uart (cp210x.c) 驱动解析 * usb_serial_driver 结构体解析 include/linux/usb/serial.h /** 描述一个usb 串口设备驱动 * ...

  2. JavaScrip——练习(求整数和、求整数积)

    用HTML和JSp来实现 1.HTML调用JSp语法:<script type="text/javascript" src="整数和jsp.js"> ...

  3. jquery 自动完成 Autocomplete插件汇总

    1. jQuery Autocomplete Mod jQuery Autcomplete插件.能够限制下拉菜单显示的结果数. 主页:http://www.pengoworks.com/worksho ...

  4. 【转】优秀PMP项目经理必备的8个要素

    结合本人这几年在项目管理上的总结和得失,本人认为优秀的项目经理要有 责任心.要 善于沟通.能 引导客户.能 预测风险. 善于总结. 随需应变.善于 激励团队.同时也要 懂技术. 责任心 作为项目经理首 ...

  5. QT 交叉编译工具选择

    使用QT交叉编译,生成的都是x86的可执行文件.Zoro告诉我交叉工具配置错了. 参考链接: http://www.cnblogs.com/zengjfgit/p/4744507.html linux ...

  6. BCM_I2C函数更改

    版本:sdk-xgs-robo- 平台:BCM53344 应用:控制POE芯片 描述:POE控制芯片使用PD69200,使用i2c与其通信,每次需要发送15字节数据,并接受15字节的返回数据. 1.更 ...

  7. 【转载】C#进阶系列——动态Lamada

    前言:在DDD系列文章里面,我们在后台仓储里面封装了传递Lamada表达式的通用方法,类似这样: public virtual IQueryable<TEntity> Find(Expre ...

  8. 利用CMake和OpenCV源代码生成Visual Studio工程

    OpenCV1.0版本有windows,linux之分,笔者曾经一直使用Opencv1.0.这个版本在下载,安装之后,在 \OpenCV\_make文件夹下面已经存在了一个opencv.dsw的工程文 ...

  9. Linux Source命令及脚本的执行方式解析(转)

    当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录:这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行 ...

  10. react新手入门(序)

    之前在软件园使用的是react,当时为了做个集光推送,自己去搭过react,这次项目中继续使用react,于是又重新操作了遍,恰巧公司买了本react的书籍,这本书写的非常好,看着并不觉得拗口,很容易 ...