### Xcode 4.3 和 4.4 免证书开发调试及构建IPA知识点解析 #### 一、背景介绍 随着iOS开发环境的不断更新和完善,开发者们在进行应用开发时经常会遇到证书与配置文件的问题。为了降低这些复杂性的门槛,部分开发者尝试采用免证书的方式进行开发与调试。本文档详细介绍了如何在Xcode 4.3 和 4.4 版本中实现免证书开发调试,并最终构建IPA文件的过程。 #### 二、制作证书 1. **步骤概述** - 打开Finder -> 应用程序 -> 实用工具 -> 钥匙串访问。 - 在“钥匙串访问”中选择“证书”,然后选择“创建证书”。 2. **操作细节** - 创建的证书名称必须是“iPhoneDeveloper”。这是为了让Xcode识别此证书作为免证书开发的基础配置。 3. **图形界面操作** - 文档中包含多张图片来引导用户完成整个创建过程,但由于文档未提供具体图像内容,此处无法进一步详细解释每一步的具体操作。 #### 三、修改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`。 - 原始值为`YES`,修改后如下: ``` <key>CODE_SIGNING_REQUIRED</key> <string>NO</string> <key>ENTITLEMENTS_REQUIRED</key> <string>NO</string> ``` 2. **修改Info.plist文件** - 路径:`/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/` - 在该路径下增加以下两项: - `PROVISIONING_PROFILE_ALLOWED`值设为`NO` - `PROVISIONING_PROFILE_REQUIRED`值设为`NO` ``` <key>PROVISIONING_PROFILE_ALLOWED</key> <string>NO</string> <key>PROVISIONING_PROFILE_REQUIRED</key> <string>NO</string> ``` 3. **替换关键字** - 在Info.plist文件中将所有的`XCiPhoneOSCodeSignContext`替换为`XCCodeSignContext`。 #### 四、设置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.txt ``` - 重命名文件: ``` mv gen_entitlements.txt gen_entitlements.py ``` - 设置文件执行权限: ``` sudo chmod 777 gen_entitlements.py ``` 2. **手动创建文件** - 如果上述命令未能成功创建文件,或计算机未连接互联网,则需要手动创建`gen_entitlements.py`文件,并设置执行权限。 3. **脚本内容** - `gen_entitlements.py`脚本的主要功能是根据输入的应用名称生成相应的entitlements文件。 ```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"> """ ``` - 该脚本通过命令行参数接收应用名称和目标文件名,并根据这些信息生成entitlements文件。 #### 总结 通过以上步骤,您可以在Xcode 4.3 和 4.4 版本中实现免证书的开发调试,并且构建出IPA文件。这种方法虽然简化了开发流程,但在实际生产环境中可能不被推荐,因为苹果官方对于应用上架App Store有着严格的签名要求。但对于内部测试或者个人项目来说,这种方式提供了极大的便利。
剩余24页未读,继续阅读
- 粉丝: 70
- 资源: 37
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页