我在使用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文件夹!!
我对这种协同设置一无所知。
有人可以帮助我吗?
答案 0 :(得分:0)
首先,“codesign”二进制文件仅适用于OSX。
您遇到的另一个问题是由于权限限制。你需要chmod php脚本以及输出文件夹“ipas Working directory”。
我知道我的回复为时已晚,我只是看到了这个帖子,虽然我之前提到了解决方案并且已经修复了。
祝你好运