如何利用开发者账号重签ipa文件,并部署到IOS设备做测试

最近在搞IOS平台的测试,遇到了个不大不小的问题

  测试build是通过TestFlight递交的,测试人员手上没有源代码,开发人员在国外,不方便共享源码,如何能做IOS的自动化测试

  经过折腾,发现了个可能的办法,

  1. 先通过TestFlight安装build

  2. 再把build通过ifanbox把build导出来成为ipa文件

  3. 下面就需要把ipa文件重新签名,方法有两种

  方法一:

  利用商业化工具签名,SeeTest支持把ipa重新签名,签名需要提供 provision文件,和开发者证书私钥和密码

  方法二:

  自己想办法签,代码参考如下


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/

  其中"iPhone Distribution: Company Certificate"是你证书的common name, 别的没什么要注意的。

  方法三:

  网上有推荐用一个叫iresign的工具签名,其实挺好用,该工具只能工作在mac下面

  个人推荐用方法三,但是要注意一个问题,就是iresign需要你提供四个信息,一个是ipa文件,一个是provision文件,一个是证书的common name,最后一个是entitlements.plist文件。前三个想必大家都懂,但是第四个之前真没听过,网上资料也有限。

  请用下面的方法生成entitlements.plist文件


/usr/libexec/PlistBuddy -x -c "print :Entitlements " /dev/stdin <<< $(security cms -D -i production.app/embedded.mobileprovision) > entitlements.plist

/usr/libexec/PlistBuddy -c 'Set :get-task-allow true' entitlements.plist

  生成之后,再利用iresign,就可以做出一个可以被xcode instrument的ipa包了。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2025-01-26 17:40:21

如何利用开发者账号重签ipa文件,并部署到IOS设备做测试的相关文章

平台之间的文件传输向来是iOS设备的软肋之一

即便在网络云服务发展如此迅猛的今天,平台之间的文件传输向来是iOS设备的软肋之一.将PC上的文档和音乐迁移到iPhone,把Mac中的视频和图片同步到iPad等这些看似容易的日常操作对用户来说简直就是"活受罪".如果有iStick帮忙,它可能会让你轻松不少. iStick是一款通过了苹果MFi认证的U盘,它具备了Lightning和USB两个接口,通过调节可以进行任意的接口切换.iStick最大的亮点就是能当做一个文件存储的中转站,将Mac.PC上的任何文件传输到iOS设备本地,反之同

不让苹果开发者账号折磨我

在iOS开发过程中,不可避免的要和证书打交道,真机调试.App上架.打包给测试去测试等都需要搞证书.在此过程中我们会遇到很多的问题,但是如果掌握了真机调试的原理和本质:遇到问题,我们就更容易定位问题之所在,从而迅速的解决问题.这篇文章不是一步步教给你证书,描述文件的制作(其实制作步骤是非常简单的),而是尽可能的讲明白Member Center中的一些知识及原理.并且此文不涉及如何申请开发者账号,以及App上架App Store的流程. 此篇文章的逻辑如下图所示: 图0-0 此篇文章的逻辑图 Ce

ios ipa apple company 开发者账号申请分享攻略

ios公司开发者账号申请分享攻略 好不容易终于申请下来了ios 公司开发者账号,真是一路艰辛和漫长啊,特别是对于远在大洋彼岸的大中华国家.以下我就分享一下这一路下来的经验,希望对于那些新手同仁们有所帮助. iso开发者账号分为 个人(individual),公司(company),企业(enterprise)三种类型.个人账号只能有一个开发者,公司账号可以允许多个开发者协作开发(比如可以共享开发平台等,这个对于需要多人协作开发的好处很多).企业账号,其app只能用于内部员工使用,是无法对外公开的

Apple开发者账号相关

证书类型 账号类型 价格 可以发布AppStore? 支持安装设备数量 申请条件 证书类型 个人账号 $99 √ 500 无限制 Ad Hoc, App Store 公司账号 $99 √ 500 DUNS编码 Ad Hoc, App Store 企业账号 $299 × 无限制 DUNS编码 Ad Hoc, In House 教育账号 $0 √ 500 教育机构 Ad Hoc, App Store 证书选择 到目前为止,苹果为 iOS 应用共提供了三种类型的证书签名方式,每一种都有独特的用途.这三

iOS开发者账号总结

之前写过一篇<iOS开发者账号总结>的文章,主要总结了不同开发者账号之间的区别,以及一些账号管理和选择上的建议. 但是,之前的文章因为没有开启Markdown,而且当时写得有点潦草,现在看起来感觉太乱了.这两天打算把这篇文章重写一下,内容也会进行更新和添加,以保证文章质量.  简述 iOS开发在国内已经发展好几年了,在进行iOS开发之前必不可少的一件事,就是申请开发者账号. 申请开发者账号后,就可以进入开发者中心下载Xcode编译器,并且配置开发者证书进行真机测试来调试项目.在程序开发完成后,

多台Mac电脑使用同一个apple开发者账号测试

我的情况是这样的,公司有一个开发者账号,我个人的机器上没有装开发者证书,写的程序无法在真机上测试,因此我今天的任务就是在已有开发者账号.证书的基础上给自己电脑装上.   今天给自己的macbook装上了公司的apple开发者账号,以前总是用我的机器写代码但因为没有开发者账号不能给真机装也不能在真机上测试,想测试还需要把代码转移到其他机器上,很不方便,刚在网上找到一些方法装上了账号.感觉这个问题还是很普遍的,而且今天就为装这个也费了不少功夫有很多方法都没走成,因此把它总结出来,方便更多人能很快装上

利用Windows 7文件库收藏重要文件

大部分人的工作应该跟笔者一样,每天的工作都有很大的相关性,在XP时代,我们大多是根据当前工作的需要建立相关的文件夹,然后按照我们的习惯进行细化区分.但随着文件数量和种类的增多,再加上工作需要和使用习惯的不确定性,文件变得越来越混乱,文件夹结构越来越复杂,重复文件也越来越多,而真正要用到某个文件时却怎么也找不到了.而现在到了Win7系统时代能不能解决我们这方面的困扰呢?答案当然是肯定的,只要利用Windows7的文件库功能轻松就能应对. 简单地讲,Windows 7文件库就是能将我们需要的文件和文

CentOS下如何删除或重命名乱码文件?

CentOS下如何删除或重命名乱码文件?   当文件名为乱码的时候,无法通过键盘输入文件名,所以在终端下就不能直接利用rm,mv等命令管理文件了. 当文件名为乱码的时候,无法通过键盘输入文件名,所以在终端下就不能直接利用rm,mv等命令管理文件了. 但是每个文件都有一个i节点号,可以通过i节点号来管理文件.首先,要取得文件的i节点号.这个可以通过ls命令的-i选项获得得. 一.删除 第一步:获取文件的id号 ? 1 ls -li 第二步:执行删除 ? 1 find . -inum 3298355

利用java io操作多个文件

问题描述 利用java io操作多个文件 A文件: A B C D B文件: 1 2 3 4 利用java io操作A B 文件,得出 C文件: A 1234 B 1234 C 1234 D 1234 或者 A 1 A 2 A 3 A 4 B 1 B 1 B 2 B 3 B 4 ---- 大神求解 解决方案 第一种合并方式比较简单,A文件的逐行+B文件的全部内容,所以可以这样实现:先将B文件读入内存中存入中间变量中,然后逐行遍历A文件写入C文件. 参考实现如下,合并时注意添加必要的空格: imp