XCode4.3.3 + iOS5.1 无证书开发并生成app、ipa文件



测试环境:
系统:Mac OS X 10.7.3(黑苹果)
xcode:4.3.3
ipad:2  (需越狱)

1.生成证书
  打开 实用工具-》钥匙串访问,选择钥匙串访问-》证书助理-》创建证书;身份类型选择自签名根证书,证书类型选择代码签名,选中下面的复选框,-》继续,一路默认,完成。
图片 
图片 
 2.修改xcode文件
  a.使用命令 defaults write com.apple.finder AppleShowAllFiles -bool True 来修改系统文件显示属性,然后apple->强制退出 Finder来刷  新系统文件显示
  b.修改
SDKSettings.plist
    使用命令 
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk 
                   sudo vim SDKSettings.plist   
    然后提示password,输入mac登陆密码

    按下 i 键进入insert状态后,修改 
CODE_SIGNING_REQUIRED、ENTITLEMENTS_REQUIRED值为NO
    <key>CODE_SIGNING_REQUIRED</key> 
    <string>NO</string> 
    <key>ENTITLEMENTS_REQUIRED</key> 
    <string>NO</string> 
    按下ESC键 返回命令状态,并按下大写Q键退出,输入:w 保存,然后输入:q 退出
 c.修改 
info.plist 
   使用命令  
 cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform 
                    sudo vim info.plist   
    将所有的 
XCiPhoneOSCodeSignContext 替换为XCCodeSignContext
    在最后一个</
dict> 之前添加 
               
 <key>PROVISIONING_PROFILE_ALLOWED</key> 
                <string>NO</string> 
                <key>PROVISIONING_PROFILE_REQUIRED</key> 
                <string>NO</string>
    保存,退出
 d.下载
gen_entitlements.py
    使用命令   
cd /Applications/Xcode.app/Contents/Developer/ 
                     mkdir iphoneentitlements   (创建文件夹)
                     cd iphoneentitlements        
                     curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt (下载文件,下载完成后再执行下一条命令)
                     mv gen_entitlements.txt gen_entitlements.py  
 3.修改XCode配置
    a.
Entitlements.plist
       新建资源文件,命名为 
Entitlements
       在文件里新建一行,并写入下面内容
       
Key:Can be debugged  Type:Boolean  Value:NO  
图片 

    b.修改 
Project 编译设置
      
Project-》Build Settings-》Code Signing Identity
      将
Code Signing Identity 下全部项改为 Don't Code Sign
图片
   c.修改
Targets 编译设置
     
Targets-》Build Settings:
      
Code Signing Entitlements设置为MobileFax/Entitlements.plist (刚创建文件)
      
Code Signing Identity设置为iPhone Developer (刚创建证书名称),
      
Code Signing Identity 下 Debug和Release下的子项设置为Don't Code Sign 
图片 

       Targets-》Build Phases:
         新增Run Script 在shell处写入
        export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/co design_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
d.修改 本项目的xx_info.plist文件
   在文件中新建一行记录
   Key: 
SingerIdentity  Type:string   Value:Apple iPhone OS Application  Signing
  
图片

图片
4.生成app文件
   选择
iOS Device 然后编译或者使用 command+b
   成功后在
/Users/mac 登陆帐号/Library/Developer/Xcode/DerivedData/项目名称-xxxxx/Build/Products/Release-iphoneos/xxxxxx.app目录下就 是生成的app文件
5 .生成ipa文件
   将生成的app文件
拖入iTunes中的应用程序,然后托出即为ipa文件,然后就可用真机测试。
:部分内容参考网络文档,感谢原作者
(完) 
posted @ 2012-12-07 09:50  ClrsDream  阅读(1145)  评论(1编辑  收藏  举报