生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用

阅读更多
最有用的一段
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 "haohao" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi





1.建立 “钥匙串”
如图,比如家里钥匙串为 “haohao”
创建证书
(1)
生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第1张图片
(2).
生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第2张图片
(3)
生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第3张图片
(4)
后面默认
生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第4张图片
(5)
生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第5张图片

2.xcode选择设备,插入设备
右上角,Organizer
选择设备,并开发者模式
生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第6张图片
3.在 中间的设置
build setting 中的
code signing Identiy
中andy ios sdk 设置为 “haohao”
生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第7张图片
4.在build Phase 中的右下角
Add build Phase
使用Add run shell
如图,shell内容如下 注意这里的“haohao” 为刚才生成的钥匙串的名字
其他的都不变,什么“my.company.”之类的都不变
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 "haohao" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi

生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第8张图片

以上内容注意
中需要用到一个python文件生成.xcent文件到app中,
apple:test1.app apple$ cat /Applications/Xcode.app/Contents/Developer/iphoneentitlements/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 = """




    application-identifier
    %s
    get-task-allow
    


""" % 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()

apple:test1.app apple$ 


------------
还要设置一下一些,一下这些是借鉴别人的文章
apple:Desktop apple$ cat xcode.txt 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk

sudo cp SDKSettings.plist SDKSettings.plist.orig
进行编辑
sudo vim SDKSettings.plist
将以下两段中的YES改为NO
CODE_SIGNING_REQUIRED
YESENTITLEMENTS_REQUIRED
YES

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
sudo cp Info.plist Info.plist.orig
sudo vim Info.plist
将全部的XCiPhoneOSCodeSignContext 修改成 XCCodeSignContext,3处

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
-----------------
sh-3.2# cat gen_entitlements.txt 
#!/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 = """




    application-identifier
    %s
    get-task-allow
    


""" % 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()

sh-3.2# 
--------------------
sh-3.2# mv gen_entitlements.txt gen_entitlements.py
sh-3.2# ls
gen_entitlements.py
sh-3.2# chmod 777 gen_entitlements.py 

看图 把xcode的工程的所有的code sign去掉

----------
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 "haohao" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
-------------



/Users/apple/Library/Developer/Xcode/DerivedData/test1-gmkvwytfnpktwcfdsyetryfgpitk/Build/Products/Debug-iphoneos
目录下找到 test1.app拖拽到itunes,再拖拽出来就变成ipa了,用91或者itunes或者nginx把ipa文件传到iphone上就可以了

---------
5.生成ipa

以上是对这篇文章的修正
http://blog.csdn.net/stoneson/article/details/7340332
  • 生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第9张图片
  • 大小: 235 KB
  • 生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第10张图片
  • 大小: 45.9 KB
  • 生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第11张图片
  • 大小: 33.4 KB
  • 生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第12张图片
  • 大小: 45.8 KB
  • 生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第13张图片
  • 大小: 131.4 KB
  • 生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第14张图片
  • 大小: 59.5 KB
  • 生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第15张图片
  • 大小: 97.1 KB
  • 生成ipa 这个是自己总结的,ios5.1.1越狱系统,xcode4.3.3可用_第16张图片
  • 大小: 13.4 KB
  • 查看图片附件

你可能感兴趣的:(ios)