Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >重新签署国际和平协议(iPhone)

重新签署国际和平协议(iPhone)
EN

Stack Overflow用户
提问于 2011-08-01 08:44:43
回答 13查看 120.2K关注 0票数 141

我目前使用hudson构建所有的应用程序,使用xcodebuild,然后使用xcrun,没有任何问题。

我收到了几个来自不同人的IPA文件,我希望使用企业帐户而不是公司帐户重新签名(用于应用程序商店,有时也可以是临时分发的)。

我的问题是,当我试图退出应用程序时,它不会安装在我的设备上(它应该安装在设备上,因为它是企业版的)。错误信息在设备上(不是在iTunes中),它简单地告诉我它无法安装应用程序。没有给出更多信息。

我找到了一些信息( http://www.ketzler.de/2011/01/resign-an-iphone-app-insert-new-bundle-id-and-send-to-xcode-organizer-for-upload/ )

这也许是可能的。我面临的问题是,它似乎没有像我在普通版本中所做的那样嵌入移动配置文件(使用xcrun),这是否可以使用codesign工具进行控制,或者是否可以使用xcrun重新签名?

使用我的resign脚本,我现在这样做

  • 解压缩项目有效负载)
  • xcrun -sdk iphoneos PackageApplication -s "$provisioning_profile“”$
  • _dir/Payload/$appname“-o "$project_dir/app-resigned.ipa”--签名"$provisioning_profile“--嵌入app

我已经查看了生成的ipa文件,它似乎与原始应用程序非常相似。这里真正应该更改的文件是什么?我最初以为_CodeSignature/CodeResources会改变,但内容看起来几乎完全一样。

指针非常受欢迎。

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2011-08-03 04:36:57

终于让它工作起来了!

使用与cert1签署的IPA进行测试,以便在配置配置文件中未添加设备的情况下提交应用商店。导致使用企业帐户和移动调配配置文件签署的新IPA用于内部部署(移动调配配置文件嵌入到IPA中)。

解决方案:

解压缩IPA

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unzip Application.ipa

删除旧的CodeSignature

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rm -r "Payload/Application.app/_CodeSignature" "Payload/Application.app/CodeResources" 2> /dev/null | true

替换嵌入式移动配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp "MyEnterprise.mobileprovision" "Payload/Application.app/embedded.mobileprovision"

重新签名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/bin/codesign -f -s "iPhone Distribution: Certificate Name" --resource-rules "Payload/Application.app/ResourceRules.plist" "Payload/Application.app"

重新打包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
zip -qr "Application.resigned.ipa" Payload

编辑:删除了授权部分(请参阅小巷评论,谢谢)

票数 218
EN

Stack Overflow用户

发布于 2016-05-11 20:37:25

这个问题的答案有点过时,并且缺少潜在的关键步骤,所以这是从外部开发人员那里安装应用程序的更新指南。

-如何给iOS应用重新签名-

假设您从另一个开发人员那里收到一个应用程序(例如MyApp.ipa),并且您希望能够在您的设备上安装和运行它(例如,通过使用ideviceinstaller )。

准备新的签约资产

第一步是获取配置配置文件,其中包括您希望安装和运行的所有设备。确保配置文件包含您在密钥链访问中安装的证书(例如,iPhone开发人员:某个主体(XXXXXXXXXX) )。下载配置文件(MyProfile.mobileprovision),以便替换应用程序中嵌入的配置文件。

接下来,我们将准备一个授权文件以包含在签名中。打开您的终端并运行以下命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ security cms -D -i path/to/MyProfile.mobileprovision > provision.plist

这将创建一个描述您的配给配置文件的xml文件。接下来,我们希望将授权提取到一个文件中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ /usr/libexec/PlistBuddy -x -c 'Print :Entitlements' provision.plist > entitlements.plist

替换配置文件并退出应用程序

如果您正在使用.ipa文件,请首先解压缩应用程序(如果您使用的是.app,则可以跳过此步骤)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ unzip MyApp.ipa

您的工作目录现在将包含Payload/Payload/MyApp.app/。接下来,删除旧的代码签名文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ rm -rf Payload/MyApp.app/_CodeSignature

用您自己的配置文件替换现有的配置文件(即embedded.mobileprovision)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cp path/to/MyProfile.mobileprovision Payload/MyApp.app/embedded.mobileprovision

重要提示:您还必须放弃应用程序中包含的所有框架。您可以在Payload/MyApp.app/Frameworks中找到这些。如果应用程序是用Swift编写的,或者如果它包含任何其他框架,则必须提交这些框架,否则应用程序将安装但不会运行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ /usr/bin/codesign -f -s "iPhone Developer: Some Body (XXXXXXXXXX)" --entitlements entitlements.plist Payload/MyApp.app/Frameworks/*

现在使用您的预配配置文件中包含的证书和您之前创建的entitlements.plist对应用程序进行签名。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ /usr/bin/codesign -f -s "iPhone Developer: Some Body (XXXXXXXXXX)" --entitlements entitlements.plist Payload/MyApp.app

您现在可以重新压缩该应用程序。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ zip -qr MyApp-resigned.ipa Payload

Done

您现在可以删除Payload目录,因为您有原始应用程序(MyApp.ipa)和重新签名的版本(MyApp-resigned.ipa)。现在,您可以在预配配置文件中包含的任何设备上安装MyApp-resigned.ipa。

票数 57
EN

Stack Overflow用户

发布于 2019-06-03 11:56:10

我认为最简单的方法是使用Fastlane:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo gem install fastlane -NV
hash -r # for bash
rehash # for zsh
fastlane sigh resign ./path/app.ipa --signing_identity "Apple Distribution: Company Name" -p "my.mobileprovision"
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6896029

复制
相关文章
Bootstrap- Modal对话框如何在关闭时触发事件
下表列出了模态框中要用到事件。这些事件可在函数中当钩子使用。 事件 描述 实例 show.bs.modal 在调用 show 方法后触发。 $('#identifier').on('show.bs.modal', function () { // 执行一些动作... }) shown.bs.modal 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。 $('#identifier').on('shown.bs.modal', function () { // 执行一些动作... }) hide
johnhuster的分享
2022/03/28
2K0
如何在 Web 关闭页面时发送 Ajax 请求
有时候我们需要在用户离开页面的时候,做一些上报来记录用户行为。又或者是发送服务器ajax请求,通知服务器用户已经离开,比如直播间内的退房操作。
grain先森
2019/05/10
3.3K0
如何在 Web 关闭页面时发送 Ajax 请求
关闭对话框,OnClose和OnCancel
我们知道,在对话框中,屏蔽ESC键自己主动退出能够选择重载OnCancel为哑函数的方法:
全栈程序员站长
2022/07/12
1.1K0
QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent
建了一个对话框,我不想把边框去掉,只想去掉关闭按钮, setWindowFlags(windowFlags()&~Qt::WindowCloseButtonHint&~Qt::WindowContextHelpButtonHint); 结果那个问号的按钮去掉了,但是关闭按钮还在,求助啊
bear_fish
2018/09/20
7.4K0
linux下如何完全删除用户
转载:http://blog.51cto.com/wutengfei/1923446
全栈程序员站长
2022/09/05
8.2K0
删除/关闭Word文稿中的插件
每次打开word时会默认选中某个软件的插件,导致效率降低;或者因为某个插件不常用等等原因,需要删除/关闭插件,本文以关闭经常弹出的WPS插件为例。
timerring
2022/07/20
8.3K0
删除/关闭Word文稿中的插件
如何在 Ubuntu 上完全卸载 Java?
Java是一种广泛使用的编程语言和平台,但在某些情况下,您可能需要在Ubuntu系统上完全卸载Java。本文将详细介绍如何在Ubuntu上卸载Java,并清理与Java相关的文件和配置。
网络技术联盟站
2023/06/20
1.6K0
如何在 Ubuntu 上完全卸载 Java?
如何在Ubuntu中完全移除Snap
我曾经写过一篇文章,解释过为什么Snap是不受欢迎的,简而言之的话,主要原因在于:
御剑
2022/11/18
16.6K0
如何在Ubuntu中完全移除Snap
如何在 Bash Shell 脚本中显示对话框
这个教程给出几个如何使用类似zenity和whiptail的工具在Bash Shell 脚本中提供消息/对话框的例子。使用这些工具,你的脚本能够告知用户当前程序运行的状态并能与用户进行交互。这两个工具的不同之处在于显示消息框或者对话框的方式。Zenity用GTK工具包创建图形用户界面,而whiptail则在终端窗口内创建消息框。
哲洛不闹
2018/09/14
2.7K0
如何在 Bash Shell 脚本中显示对话框
outlook关闭时最小化工具
outlook本身不能支持设置点击关闭按钮时最小化,而是直接退出。 需要借助一个加载项实现: Keep Outlook Running。
编程随笔
2019/09/11
3.9K0
outlook关闭时最小化工具
python测试开发django-187.Bootstrap模态框(modal)如何在关闭时触发事件
前言 Bootstrap 模态框 (modal) 在关闭时,如何触发一些事件?比如重置表单,或者重置表单的校验。 Bootstrap 模态框 (modal) 提供了4个显示和隐藏模态框的事件。这些事件
上海-悠悠
2022/01/10
1.4K0
python测试开发django-187.Bootstrap模态框(modal)如何在关闭时触发事件
关闭Outlook时最小化 dll
用Outlook时最让我感觉不爽的就是不小心点了关闭按钮就会把Outlook关闭。 我们用软件的时候都希望软件有一个关闭时最小化功能,更希望Outlook也有这个功能 但让我很失望的是把设置里看了一个
lpxxn
2018/01/31
1.4K0
关闭Outlook时最小化 dll
如何在Python中删除(删除)文件和目录
本教程说明了如何使用os,pathlib和shutil模块中的功能删除文件和目录。
用户5005176
2021/08/10
13.1K0
WordPress删除文章时自动删除图片附件
WordPress删除文章时,文章内所上传到媒体库的图片等附件不会自动删除,占用了网站空间,因此下面说明通过几行代码的简单方式实现在删除文章时自动删除缩略图以及图片附件,这样就不用手动去媒体库寻找并删除,准确而且效率高。
你的明明呐丶
2022/06/27
8510
docker一键启动、关闭、删除命令
一键启动所有docker 容器:docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
全栈程序员站长
2022/06/29
1.3K0
一键式完全删除CDH 6.3.1
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
用户1148526
2019/11/12
3.2K0
如何在项目中优化的展示对话框?
对话框在前端开发应用中,是一种非常常用的界面模式。对话框作为一个独立的窗口,常常被用于信息的展示,输入信息,亦或者更多其他功能。但是项目的使用过程中,在某些场景下对话框用起来会有一些麻烦。例如:
科技新语
2022/05/12
3320
删除或关闭Word中的超链接
最近使用的word老是会把一些文字内容或者标题转换成乱七八糟的格式,看的莫名其妙的,找了好久也不知道什么问题,后来一查才知道是因为这些文字包含超链接,word自动转换了。。。你说是不是莫名其妙。
marsggbo
2019/05/26
2.6K0
docker一键启动、关闭、删除命令
一键启动所有docker 容器:docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
互联网-小阿宇
2022/11/21
8630
如何在docker中删除images
本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/90/
羽翰尘
2019/11/20
2.5K0

相似问题

颤动对话框未完全关闭

316

无法完全关闭警报对话框

11

如何在jQuery UI对话框关闭时将其全部删除

50

如何知道对话框是否完全关闭?

27

完全隐藏with对话框而不关闭

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文