zoukankan      html  css  js  c++  java
  • 制作iOS越狱包

    IPA越狱包的制作流程:

    1. 首先,你需要通过xcode进行Archive,在菜单的Product下面,方法不再赘述。
    2. 第二步,将该文件的后缀名改成zip。举个例子,把feimaobijia.ipa改成feimaobijia.zip,然后双击进行解压,然后会解压出一个名为Payload的文件夹。在该文件夹内是一个用你BundleName命名的文件,鼠标对准,然后右击,选择“显示包内容”,这时会显示里面的所有内容,这些内容主要是你的资源文件,例如图片和nib文件等等。
    3. 第三步,这也是最关键的一步,在这些文件中找到名为“info.plist”的文件,双击打开(用xcode或者文本编辑器),直接选择用xcode打开就可以了,然后再里面添加字段,其中Key是SignerIdentity,Value是Apple iPhone OS Application Signing。然后保存该文件。
      <key>SignerIdentity</key>
      <string>Apple iPhone OS Application Signing</string>
    4. 第四步,将Payload压缩,然后将压缩后的文件后缀名改成ipa即可。
      到此为止,越狱包的制作流程就讲解完毕,接下来你就可以在各渠道发布你的app了。这个ipa越狱包可以安装在没有证书的手机上。

    后记:

    按该流程走过几遍,能够制作出这样的越狱包。在越狱手机上,貌似只要安装了AppSync插件,无论越狱包还是非越狱包都能装上去。

    但是一旦修改了Info.plist中的CFBundleIdentifier,启动时就会立即闪退。而同样的app通过Cydia源deb形式安装的则不会有这个问题。

    使用爱思助手连接设备,浏览app的安装位置,发现它们有些不同:

    • Cydia: /Applications/appName.app
    • 爱思助手:/User/Containers/Bundle/Application/F7D20BDA-07DF-4686-B2C8-9DBDC6EB5A83/appName.app

    对于用爱思助手安装的app, 在.app的同级目录下多出了一个 .com.apple.mobile_container_manager.metadata.plist 的文件:
    image

    用爱思助手或者其他plist编辑工具打开文件:
    image
    从这里可以看到CodeInfoIdentifier与Application-identifier不一致,比对可以正常运行的App的对应文件, 这几个identifier应该保持一致。 也就是说,虽然修改了Info.plist中的CBundleIdentifier,但可执行文件中也有一个application Idetifier 这二者要匹配,这样的程序需要执行某种校验,校验通过则能正常运行。(而对于用Cydia安装到/Applications目录下的app是不会有这个验证过程的) 针对该问题的解决办法为:对app重签名。

    在appName.app同级目录下新建一个plist文件,如ent.plist, 其内容如下:

    <?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>[TEAM_ID].com.cydiagame.appnew</string>
        <key>com.apple.developer.team-identifier</key>
        <string>[TEAM_ID]</string>
    </dict>
    </plist>

    其中的 application-identifier 须为Info.plist中的CBundleIndentifier同样的id值。
    接下来签名整个app:

    $ codesign -f -s "iPhone Developer: xxx  (5ZBE4C879L)"  --no-strict --entitlements=ent.plist appName.app

    然后用zip打包为ipa文件。用爱思助手安装,可以正常运行,没有闪退。

    因此,修改bundle id后,需要对app重新签名!!!

    几个有用的命令

    • 使用security命令查看本机的证书(签名app命令中用到的证书就是该命令结果列表中的 iPhone Developer 项 ):
      $ security find-identity -v -p codesigning
    • 通过codesign查看签名信息
      $ codesign -vv -d appName.app
    • 检查签名是否完后,如果没有提示则表示没有错误
      $ codesign --verify appName.app

    Ref: https://www.jianshu.com/p/a5859d8f8005 
    Ref: http://www.315026.com/showinfo-1402-107728-0.html
    Ref: https://www.jianshu.com/p/4e19244dd12e

  • 相关阅读:
    Emiller's Advanced Topics In Nginx Module Development
    关于使用UDP(TCP)跨局域网,NAT穿透的心得
    linux pipe
    使用Trinity拼接以及分析差异表达一个小例子
    Bowtie2的安装与使用
    使用Tophat+cufflinks分析差异表达
    RNA-seq流程需要进化啦!
    HISAT2+StringTie+Ballgown安装及使用流程
    HISAT2,StringTie,Ballgown处理转录组数据
    p值还是 FDR ?
  • 原文地址:https://www.cnblogs.com/open-coder/p/12738718.html
Copyright © 2011-2022 走看看