请问各位大佬,在linux环境下,是否能执行codesign这个命令,


#1

最近公司在做内测安装的一个平台,现在把测试包上传mac环境下进行签名是没有问题的,但是鉴于国内没有商用的mac server,自己搭建成本太高,所以想把签名这部分放到linux下进行操作,但是现在发现唯一的一个框架就是 https://github.com/saucelabs/isign/tree/v1.6.15 ,但是发现好久没人维护,技术现在遇到的核心问题就是如何在linux执行codesign这个命令,所以请问大佬如果想在linux下执行codesing这个命令都需要那些依赖或者有没有第三方可以用的,感谢各位大佬!


#2

Windows, 但是我感觉应该可以移植到 Linux https://github.com/ROM-Knowledgeware/IPASign

而且我忘记了 codesign 的实现, 是在 cctools还是在 Security 组件里.


#3

可以的 脱离mac环境


#4

我记得是调用的Security


#5

这个签名工具https://github.com/saucelabs/isign,我们在centos上已经部署生产环境,签名是和openssl 相关的codesign只是外层封装


#6

请问你那边成功了吗,我这边用isign重签名成功了,但是不能安装。用 codesign -vv 查看是 invalid signature。能交流一下吗,多谢了


#7

说下你的调用过程


#8

isign -c /data/www/ipa_sign/certificate.pem -k /data/www/ipa_sign/key_new.pem -p /data/www/ipa_sign/0313_dev_ldd.mobileprovision -o /data/www/ipa_sign/resigned.ipa /data/www/ipa_sign/Example.ipa -v

这是日志:Signing with apple_cert: /usr/local/lib/python2.7/dist-packages/isign/apple_credentials/applecerts.pem
Signing with key: /data/www/ipa_sign/key_new.pem
Signing with certificate: /data/www/ipa_sign/certificate.pem
Signing with provisioning_profile: /data/www/ipa_sign/0313_dev_ldd.mobileprovision
got executable /usr/bin/zip for zip
got executable /usr/bin/unzip for unzip
precheck
path: /data/www/ipa_sign/Example.ipa
extension match
extension match: .ipa
this is an archive, and a zipfile
found one app
is_native: True
found one app
File /data/www/ipa_sign/Example.ipa matched as IpaArchive
got executable /usr/bin/unzip for unzip
wrote Entitlements to /tmp/isign-atXqAy/Payload/Example.app/Entitlements.plist
working on /tmp/isign-atXqAy/Payload/Example.app/Example
Resigned bundle at </tmp/isign-atXqAy/Payload/Example.app>
got executable /usr/bin/zip for zip
archived IpaArchive to /data/www/ipa_sign/resigned.ipa
removing ua: /tmp/isign-atXqAy


#9

这种情况一般是 pem 或者 mobileprovision的原因,重新生成一下试试看


#10

需要更新isign这个项目里自带的 applecerts.pem 吗


#11

必须的,换成自己p12生成的 pem