zoukankan      html  css  js  c++  java
  • ipa生成方法

    根据实践操作经验,提供.ipa的生成和安装方法:
    方法1:
    a. 新建Payload资料夹
    b. 将编译生成.app放入Payload中
    c. 右键生成压缩档,将.zip后缀名改为.ipa
    d. 连接jailbreak的iPod或iPhone,双击.ipa文件,同步即可安装成功

    方法2:
    1)建立 IPA 資料夾
    2)在 IPA 資料夾內建立 Payload 資料夾
    3)把編譯好的 .app 拷到 Payload 內
    4)利用 BBEdit 打開 .app 資料夾內的 info.plist 檔
    5)在 </dict> 之前加入以下句子並儲存:
    <key>SignerIdentity</key>
    <string>Apple iPhone OS Application Signing</string>
    6)把本來要上傳到 iTunes Connect 的 512x512 JPG 放到 IPA 資料夾
    7)把 JPG 檔改名為 iTunesArtwork
    8)把 Payload 及 iTunesArtwork 壓縮成 ZIP 檔
    9)把 Payload.zip 改名為 Final.ipa
    10)把 Final.ipa 拖拉到 iTunes 的 Applications 內
    11)同步!
    留意 07 步驟的 iTunesArtwork 是沒有後方 .jpg 的。

    以上生成的.ipa只能运行在和之又谐版(jb)的iPod或iPhone上


    在没有iDP的情况下,要想将程序放到iPhone上调试,并最终发布IPA用于分享,需要以下几个步骤:

    1.自己为自己颁发一个证书用于为生成的程序签名

    2.修改工程配置以及Xcode的配置文件和二进制文件以阻止其验证和使用这个伪造的证书

    3.使用自定义的步骤为应用程序签名

    4.使用一点小trick来生成IPA文件

    1.创建证书

    我会分几步来说明。值得说明的是,要想真机调试,ios device必须事先越狱.创建证书的过程比较简单,打开实用工具-钥匙串访问。然后在菜单栏里点击钥匙串访问-证书助理-创建证书来打开向导。第一个步骤比较重要,必须要把名称命名为iPhone Developer,将类型设定为代码签名,将"让我覆盖这些默认值"选中。之后的步骤无需更改,一路点击“确定”和“继续”来完成这个向导就可以。

    1.创建证书,这个没什么好说的,网上资料一大堆,只要别写错名字就好,证书名一定要为 iPhone Developer

    ipa生成方法 - J.K.Terry - J.K.Terry

    2.破解ios sdk及其xcode的相关配置文件(双击配置文件就可以打开,注意SDKSettings.plist有权限控制)

    修改/Developer/Platforms/iPhoneOS.platform目录下的Info.plist文件,将其中的 XCiPhoneOSCodeSignContext 都改为XCCodeSignContext

    修改/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk目录下的SDKSettings.plist文件,修改如下字段:

    1. <key>CODE_SIGNING_REQUIRED</key> 
    2. <string>NO</string> 
    3.  
    4. <key>ENTITLEMENTS_REQUIRED</key> 
    5. <string>NO</string> 

    3.破解xcode二进制文件。建立一个crack文件,内容如下:

    1. #!/bin/bash 
    2. cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/ 
    3. dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255 
    4. printf "xc3x26x00x00" >> working 
    5. /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original 
    6. /bin/mv -n working iPhoneOS\ Build\ System\ Support 
    7. chmod a+x iPhoneOS\ Build\ System\ Support 

    然后执行 chmod +x crack执行./crack,没错误就正常

    4.修改xcode工程配置文件

    1) 下载脚本

    打开终端,执行如下操作

    1. cd  /Developer 
    2. mkdir xcode-crack 
    3. curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt 
    4. mv gen_entitlements.txt gen_entitlements.py 
    5. chmod 777 gen_entitlements.py

    2) 禁用Xcode自动的签名操作

    将工程配置中所有的Code Signing选项全部设为Don't Code Sign,如图。可能需要先点击“All”让这个选项显示出来

    ipa生成方法 - J.K.Terry - J.K.Terry

    3)添加自定义的生成后脚本

    在Build Phases中添加一个Phase,右下角的Add Build Phase,然后单击Add Run Script,输入以下脚本(如图)

    1. export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate 
    2. if [ "${PLATFORM_NAME}" == "iphoneos" ]; then 
    3. /Developer/xcode-crack/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"; 
    4. codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/" 
    5. fi 

    ipa生成方法 - J.K.Terry - J.K.Terry

    5。打包应用程序,生成ipa文件

    在xcode上选择product菜单,选择Build For ---> Build for Achiving,就能成ipa文件了。如图:

    ipa生成方法 - J.K.Terry - J.K.Terry

    可以将这个文件拖到itunes,就可以生成一个ipa文件,如图:

    ipa生成方法 - J.K.Terry - J.K.Terry

    至此,我们就可以随心所欲地开发并调试ios程序了,并可以将打包好的ipa文件分享给他人

    按照上面的步骤导入3.x的工程成功运行,但是如果用XCode 4.2创建新工程,则会报错,需要做如下修改:

    1、将【Objective-C Automatic Reference Counting】的默认值由【YES】改为【NO】;

    2、输入下面的代码注意没有特殊字符

    1. export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate   
    2. if [ "${PLATFORM_NAME}" == "iphoneos" ]; then   
    3. /Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";   
    4. codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"   
    5. fi
  • 相关阅读:
    Java基础知识学习10-常用的API-01
    Java基础知识学习09-final、static关键字、匿名对象、内部类、修饰符、代码块
    Java基础知识学习08-构造方法
    前端网页学习01
    Java基础知识学习07-抽象类、接口、多态
    Java基础知识学习06-封装、继承
    Java基础知识学习05-类与对象
    Java基础知识学习04-自定义类、ArrayList集合
    Java基础知识学习03-数组
    1.9 向线程传递参数
  • 原文地址:https://www.cnblogs.com/a7345678/p/2575613.html
Copyright © 2011-2022 走看看