使用PHP

时间:2017-12-30 17:08:10

标签: php ipa

我在使用PHP重新签名IPA文件时遇到问题

这是我的代码:

<?php
/*
unzip app.ipa

rm -rf Payload/MyApp.app/_CodeSignature/

cp ~/Downloads/AdHoc.mobileprovision Payload/MyApp.app/embedded.mobileprovision

codesign -f -s "iPhone Distribution: Company Certificate" --resource-rules Payload/MyApp.app/ResourceRules.plist  Payload/MyApp.app

zip -qr app-resigned.ipa Payload/
*/

if(file_exists('app.ipa')) {
    rename('app.ipa', 'app.zip');
    $zip = new ZipArchive;
    $res = $zip->open('app.zip');
    if ($res === TRUE) {
      $zip->extractTo('C:/Users/abdul/Dropbox/127.0.0.1/ios');
      $zip->close();
    }
}


// remove _CodeSignature
if(file_exists('Payload/Gab.ai ObjC.app/_CodeSignature')) {
    $dir = 'Payload/Gab.ai ObjC.app/_CodeSignature';
    $it = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS);
    $files = new RecursiveIteratorIterator($it,
                 RecursiveIteratorIterator::CHILD_FIRST);
    foreach($files as $file) {
        if ($file->isDir()){
            rmdir($file->getRealPath());
        } else {
            unlink($file->getRealPath());
        }
    }
    rmdir($dir);
}

unlink('Payload/Gab.ai ObjC.app/embedded.mobileprovision');

// copy mobileprovision file
copy('embedded.mobileprovision', 'Payload/Gab.ai ObjC.app/embedded.mobileprovision');


// i think there is a problem here!
exec('codesign -f -s "iPhone Distribution: ****" --resource-rules Payload/Gab.ai ObjC.app/ResourceRules.plist  Payload/Gab.ai ObjC.app');
?>

我有app.ipa,embedded.mobileprovision和我的发行版。

但我认为使用codeign时exec的问题并不能创建_CodeSignature文件夹!!

我对这种协同设置一无所知。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

首先,“codesign”二进制文件仅适用于OSX。

您遇到的另一个问题是由于权限限制。你需要chmod php脚本以及输出文件夹“ipas Working directory”。

我知道我的回复为时已晚,我只是看到了这个帖子,虽然我之前提到了解决方案并且已经修复了。

祝你好运