IOS开发-phonegap及免证书及真机调试
2014-12-01 16:58
281 查看
回头补记(Last edited at 2015.5.24)。
第一步:建立项目
参见:Xcode5 + phoneGap2.9搭建ios开发环境
下载phonegap2.9.1,解压。
命令行,进入目录:phonegap-2.9.1/lib/ios/bin。执行:./
执行后会自动创建[项目位置]目录,在次目录下生成以[项目名]命名的项目。在Xcode中打开项目:/Users/[用户名]/Documents/Workspace/[项目位置]/[项目名]
注意几个项目需要修改的属性 :Bundle display name(桌面软件显示的名称);默认起始页:config.xml中<content src="index.html" />
第二步:配置项目(for 免证书及真机调试)
参见:IOS 7 Xcode 5 免IDP证书 真机调试
伪造签名证书:iPhone Developer
修改Xcode 的配置文件
修改/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/SDKsettings.plist,把CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED的值改成NO
修改/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist,右击--Add Row,增加两项:
PROVISIONING_PROFILE_ALLOWED 值为 NO
PROVISIONING_PROFILE_REQUIRED 值为 NO
将上面Info.plist文件中的 "XCiPhoneOSCodeSignContext" 替换成"XCCodeSignContext"(共3处)
生成gen_entitlements.py脚本(见附件一,该文件存放目录:/Applications/Xcode.app/Contents/Developer/iphoneentitlement,文件属性777)
修改项目属性(每次新建项目都要执行)
Target->BuildSettings->Code Signing:全部改为Don't Code Sign
Project->BuildSettings->Code Signing:全部改为iPhone Developer
Target->Build Phases下点击菜单Editor->Add Build Phase->Add Run Script Build Phase,增加脚本(见附件二)
连接设备
第三步:打包ipa文件:没有证书是无法发布ipa的,有个简单的方法可以实现生成ipa:
先将代码生成为Release目标,然后打开工程的输出文件夹,通常情况下这个目录是:
/Users/%用户名%/Library/Developer/Xcode/DerivedData/%工程名+一串字符%/Build/Products/Release-iphoneos,
这个目录下有个.app的文件,就是生成的程序了。把这个.app拖到iTunes中,它会出现在应用程序那个列表中,然后再把它从iTunes的那个列表中拖出来(比如拖到桌面),就变成.ipa了。
补充说明:
新装X230的黑苹果,Yosemite+XCode6.1,发现原来可以真机调试的项目,甚至完全按照上述方法新建一个项目竟然无法进行真机调试了,折腾了很久,甚至用原来的备份恢复系统都不行,最后还是度娘厉害:http://www.cocoachina.com/bbs/read.php?tid-278833.html,我按照10楼的方法搞定:“原来是项目名+“tests”的targets里面也要设置Cdoe Signing也要设置don't code sign ”,至于其他人说的“把我们证书账号中的Identifiers、Certificates和Provisioning Profiles中的内容全部删除了”,没试 。
附件一:gen_entitlements.txt:
附件二:
第一步:建立项目
参见:Xcode5 + phoneGap2.9搭建ios开发环境
下载phonegap2.9.1,解压。
命令行,进入目录:phonegap-2.9.1/lib/ios/bin。执行:./
create
/Users/[用户名]/Documents/Workspace/[项目位置] [包名]
[项目名]
执行后会自动创建[项目位置]目录,在次目录下生成以[项目名]命名的项目。在Xcode中打开项目:/Users/[用户名]/Documents/Workspace/[项目位置]/[项目名]
注意几个项目需要修改的属性 :Bundle display name(桌面软件显示的名称);默认起始页:config.xml中<content src="index.html" />
第二步:配置项目(for 免证书及真机调试)
参见:IOS 7 Xcode 5 免IDP证书 真机调试
伪造签名证书:iPhone Developer
修改Xcode 的配置文件
修改/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/SDKsettings.plist,把CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED的值改成NO
修改/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist,右击--Add Row,增加两项:
PROVISIONING_PROFILE_ALLOWED 值为 NO
PROVISIONING_PROFILE_REQUIRED 值为 NO
将上面Info.plist文件中的 "XCiPhoneOSCodeSignContext" 替换成"XCCodeSignContext"(共3处)
生成gen_entitlements.py脚本(见附件一,该文件存放目录:/Applications/Xcode.app/Contents/Developer/iphoneentitlement,文件属性777)
修改项目属性(每次新建项目都要执行)
Target->BuildSettings->Code Signing:全部改为Don't Code Sign
Project->BuildSettings->Code Signing:全部改为iPhone Developer
Target->Build Phases下点击菜单Editor->Add Build Phase->Add Run Script Build Phase,增加脚本(见附件二)
连接设备
第三步:打包ipa文件:没有证书是无法发布ipa的,有个简单的方法可以实现生成ipa:
先将代码生成为Release目标,然后打开工程的输出文件夹,通常情况下这个目录是:
/Users/%用户名%/Library/Developer/Xcode/DerivedData/%工程名+一串字符%/Build/Products/Release-iphoneos,
这个目录下有个.app的文件,就是生成的程序了。把这个.app拖到iTunes中,它会出现在应用程序那个列表中,然后再把它从iTunes的那个列表中拖出来(比如拖到桌面),就变成.ipa了。
补充说明:
新装X230的黑苹果,Yosemite+XCode6.1,发现原来可以真机调试的项目,甚至完全按照上述方法新建一个项目竟然无法进行真机调试了,折腾了很久,甚至用原来的备份恢复系统都不行,最后还是度娘厉害:http://www.cocoachina.com/bbs/read.php?tid-278833.html,我按照10楼的方法搞定:“原来是项目名+“tests”的targets里面也要设置Cdoe Signing也要设置don't code sign ”,至于其他人说的“把我们证书账号中的Identifiers、Certificates和Provisioning Profiles中的内容全部删除了”,没试 。
附件一: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 = """ <?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()
附件二:
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
相关文章推荐
- iOS开发:安装真机调试证书
- Xcode 4.1/4.2/4.3/4.4/4.5 + iOS 5.1.1免证书(iDP)开发+真机调试+生成IPA全攻略
- Xcode 4.1/4.2/4.3/4.4/4.5 + iOS 5.1.1免证书(iDP)开发+真机调试+生成IPA全攻略
- Xcode 4.1/4.2/4.3/4.4 + iOS 5.1.1免证书(iDP)开发+真机调试+生成IPA全攻略
- ios 5.1.1完美越狱+xcode4.1/4.2/4.3免证书(iDP)开发+真机调试+生成ipa文件+破解详细步骤
- Xcode 4.1/4.2/4.3/4.4/4.5 + iOS 5.1.1免证书(iDP)开发+真机调试+生成IPA全攻略
- Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略
- iOS开发:安装真机调试证书
- Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略
- Xcode 4.1/4.2/4.3/4.4/4.5 + iOS 5.1.1免证书(iDP)开发+真机调试+生成IPA全攻略
- iOS开发:安装真机调试证书
- Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略
- iOS开发:安装真机调试证书
- Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略
- iOS开发:安装真机调试证书
- iOS开发:安装真机调试证书
- Xcode4.5.1破解iOS免证书开发真机调试与ipa发布
- (转)Xcode 4.1/4.2/4.3/4.3.2 + iOS 5.1.1免证书(iDP)开发+真机调试+生成IPA全攻略
- iOS开发:安装真机调试证书
- iOS开发:安装真机调试证书