美文网首页
nPlayer Lite插件打包

nPlayer Lite插件打包

作者: hj的简书 | 来源:发表于2019-09-30 17:35 被阅读0次

    前言

    nPlayer Lite去广告中,我们聊到可以在越狱手机上,使用插件开发的形式,清除app中的广告。那么,怎么样才能将编写的插件提取,和项目一起打包,然后在非越狱手机上运行呢?

    准备工作

    1.对nPlayer程序进行脱壳

    脱壳后的cryptid

    之前已经写过一篇脱壳文章,这里就不阐述了。

    2.获取授权文件

    当我们改动项目后,我们需要对项目重新签名并打包。因此,我们需要获取苹果官方提供的授权文件(免费的是没法重签名的)。我们可以在apple developer中下载用来重签名的. mobileprovision文件。或者,使用xcode编写一个项目,然后在生成的生成的.app中,获取embedded.mobileprovision文件。

    创建一个项目
    可以使用Debug或者Release配置描述证书,我这边为了方便测试,使用的是Debug环境 获取描述文件

    3.下载insert_dylib

    使用tweak创建的插件(动态库),都是独立于nPlayer程序。插件是通过Cydia中的Cydia Substrate程序,将动态库和nPlayer绑定到一起。但是我们知道,真机是没有Cydia软件的,因此,我们需要将生成的插件,注入到项目中。
    下载后,将insert_dylib编译后的mach-o文件,拖拽到/usr/local/bin/目录下,目的是方便在终端中直接敲出
    insert_dylib命令

    4.下载ios-app-signer

    在我们破坏原来的文件内容后,如果需要打包到真机设备上的,都是需要重新签名。ios-app-signer是一款开源的图形化签名工具,非常使用方便。
    下载源码后,使用xcode打开。然后在编译之前选择编译的环境为Release,之后就可以生成一个用于签名打包的app。

    编译环境
    当然,也可以不使用Release,这就像iOS开发的时候做选择.

    开始编译

    1.获取.app文件

    • 在脱壳的时候如果使用的是Clutch,直接解压就可以获得.app文件。
    • 如果使用dumpdecrypted工具进行脱壳,首先需要将iPhone上的app安装目录拖拽到Mac本地,并且使用脱壳后的mach-o文件,替换未脱壳的mach-o文件。
      获取nPlayer安装目录
      保存.app文件到本地

    将上面获得的embedded.mobileprovision文件放入到.app文件夹中,方便签名工具的打包。

    2.找到使用tweak编写的动态库

    获取动态库
    tweakplayer.dylib文件拖拽到需要打包的.app

    3.在nPlayer中插入动态库

    如果需要nPlayer mach-o文件,在执行的时候,执行tweak编写的动态库,就需要将tweakplayer.dylib插入到nPlayer mach-o文件中。

    插入动态库
    • @executable_path:代表当前可执行文件所在的目录
    • --weak:表示如果当前动态库不存在,程序运行的时候也不崩溃
    • --all-yes:表示需要输入是否确定的时候一直输入yes

    使用otool -L nPlayer或者MachOView中,我们可以查看是否插入成功

    otool查看

    在MachOView下的Load Commonds下查看:


    MachOView查看

    4.修改tweakplayer所需要依赖库的路径

    我们在上面插入了tweakplayer.dylib后,需要确认,tweakplayer.dylib是否需要除了系统之外的mach-o文件

    查找需要的mach-o文件

    可以发现,tweakplayer动态库需要使用Cydia提供的CydiaSubstrate。这也是我前面提到在越狱手机上,用来联系动态库和应用程序之前的桥梁。所以,我们需要将CydiaSubstrate拖拽到应用程序(.app)中,并将tweakplayer动态库所需要的mach-o文件修改为当前动态库所在的路径。

    5.修改tweakplayer依赖库路径

    使用install_name_tool -change 原始路径 修改路径 mach-o文件

    修改路径

    打包并运行ipa

    在上面步骤中,我们已经将embedded.mobileprovision文件放入到.app文件夹中。因此,我们可以使用ios-app-signer将程序重新签名打包,这样就会生成一个ipa文件

    重新签名打包
    使用pp助手,或者iFunBox将ipa文件安装到本地

    备注

    因为我是使用DEBUG开发测试环境,所以在动态库签名这里省略了,如果是正式环境,请使用如下步骤:


    签名打包
    // 查看可用证书
    security find-identity -v -p codesigning
    
    // 进行签名
    codesign -fs   证书ID   xxx.dylib
    

    相关文章

      网友评论

          本文标题:nPlayer Lite插件打包

          本文链接:https://www.haomeiwen.com/subject/odxhpctx.html