专业IOS签名团队
闪电售后,性价比秒杀上架,快速上线、测试
提供 iOS 企业证书签名服务,让您的 iOS App 无需提交 App Store 或设置
UDID 即可在iPhone、iPad 等设备上直接安装,帮助您快速完成应用内测
过程,降低测试成本,缩短上线时间。

ipa签名在本地签署iOS应用

2019-11-25 21:56 栏目:ipa签名 查看()

需要ipa签名iOS应用程序才能在移动设备上安装应用程序。许多人在他们的开发和集成平台中签名,但是一些人需要在指定计算机上ios签名应用程序,以便将签名凭据保存在受信任的环境中。

本知识库文章总结了在本地ipa企业签名iOS应用程序所需的步骤。

我们希望您发现它有用并喜欢使用Appdome!

在本地签署iOS应用

Appdome是一种移动集成平台即服务(iPaaS),允许用户向Android和iOS应用程序添加各种功能,SDK和API。使用简单的“单击添加”用户界面,Appdome允许任何人轻松地将功能集成到任何移动ipa签名应用程序中-无需任何代码或编码。

在Appdome平台上融合iOS应用之后,Appdome建议在Appdome平台上对应用进行签名。单击“ 签名”按钮,Appdome平台将:

  • 验证ios签名证书,权利和配给配置文件的组件,以确保应用程序的所有组件均已正确苹果企业签名。
  • 解决了如果提供的配置文件与应用程序中的权利不匹配时可能发生的不匹配权利。
  • 不会以任何方式修改iOS应用。这很重要,因此由于防篡改功能已自动集成到融合应用中,因此ios签名不会触发违规行为。

出于安全原因,默认情况下,Appdome平台不存储在平台上签名应用程序时使用的任何ios签名证书,证书密码或设置配置文件。一旦关闭用户会话,证书,证书密码和配置文件将被永久删除。

如果需要在Appdome平台上本地签署iOS应用程序,则可以按照此知识库文章中的过程在AppFusion之后对应用程序进行签名。

重要先决条件说明

以下过程仅适用于在Xcode(或任何其他开发框架)中通过相同的证书,配置文件和凭据在Xcode(或任何其他开发框架)中开发和签名的应用程序,这些证书,配置文件和凭据将在Appdome之后用于本地签名。这是由于权利不匹配而导致无法安装应用程序。在Appdome平台上,您可以使用任何证书对任何应用程序进行签名,因为Appdome平台可以解决不匹配的权利并执行增强的深度检查。

先决条件

  1. Appdome-GO访问
  2. Mac OS X计算机
  3. 将.ipa上载到Appdome之前,用于在Xcode中对应用程序进行签名的Keychain Access中的证书(带有私钥)。有关创建证书的更多信息,请参见此处。
  4. 每个需要签名的可执行文件的供应配置文件。将.ipa上传到Appdome之前,配置文件必须与在Xcode中对应用程序进行签名所使用的配置文件相同。供应配置文件的应用程序ID应为通配符或与需要签名的可执行文件的捆绑软件ID匹配。供应配置文件应具有可执行文件所要求的权利。如果融合或应用程序需要AppGroup,则配置文件应包含它们。
  5. 从Appdome下载的融合.ipa,无需选择“私有签名”选项即可进行签名。

如何在本地签署iOS应用

1.下载融合的ipa。

从你的帐户上Appdome,后复兴:

从登录在选择标签私有签名中如何你想登录?

转到Deploy选项卡,然后单击Download my fused app。

2.解压缩融合的ipa

unzip <ipa_path>.ipa -d OUTPUT_FOLDER

3.以正确的顺序签名应用程序可执行文件

如果您有Watchkit:

cp <path to watchkit extension mobile provision> OUTPUT_FOLDER/Payload/<app_name>.app/Watch/<watchkit_name>.app/PlugIns/<watchkit_name> Extension.appex/embedded.mobileprovision

codesign -d --entitlements :- OUTPUT_FOLDER/Payload/<app_name>.app/Watch/<watchkit_name>.app/PlugIns/<watchkit_extension_name>.appex/ > WATCHKIT_EXTENSION_ENTITLEMENT.plist

codesign -f -s "<Name in Keychain Access>" --entitlements WATCHKIT_EXTENSION_ENTITLEMENT.plist OUTPUT_FOLDER/Payload/<app_name>.app/Watch/<watchkit_name>.app/PlugIns/<watchkit name> Extension.appex/

cp <path to watchkit mobile provision> OUTPUT_FOLDER/Payload/<app_name>.app/Watch/<watchkit_name>.app/embedded.mobileprovision

codesign -d --entitlements :- OUTPUT_FOLDER/Payload/<app_name>.app/Watch/<watchkit_name>.app > WATCHKIT_ENTITLEMENT.plist

codesign -f -s "<Name in Keychain Access>" --entitlements WATCHKIT_ENTITLEMENT.plist OUTPUT_FOLDER/Payload/<app_name>.app/Watch/<watchkit_name>.app/

如果您有应用程序扩展名,请针对每个应用程序扩展名:

cp <path to app extension mobile provision> OUTPUT_FOLDER/Payload/<app_name>.app/PlugIns/<plugin_name>.appex/embedded.mobileprovision

codesign -d --entitlements :- OUTPUT_FOLDER/Payload/<app_name>.app/PlugIns/<plugin_name>.appex/ > PLUGIN_ENTITLEMENT.plist

codesign -f -s "<Name in Keychain Access>" --entitlements PLUGIN_ENTITLEMENT.plist OUTPUT_FOLDER/Payload/<app_name>.app/PlugIns/<plugin_name>.appex/

必需–要签署Appdome  库:

cp <path to main app mobile provision> OUTPUT_FOLDER/Payload/<app_name>.app/Frameworks/libloader.framework/embedded.mobileprovision

echo -e "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<\0041DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n</dict>\n</plist>" > EMPTY_ENTITLEMENT.plist

codesign -f -s "<Name in Keychain Access>" --entitlements EMPTY_ENTITLEMENT.plist OUTPUT_FOLDER/Payload/<app_name>.app/Frameworks/libloader.framework/

如果有需要签名的框架(例如,F5 Anti-Bot框架):

cp <path to main app mobile provision> OUTPUT_FOLDER/Payload/<app_name>.app/embedded.mobileprovision

codesign -f -s "<Name in Keychain Access>" --entitlements EMPTY_ENTITLEMENT.plist OUTPUT_FOLDER/Payload/<app_name>.app/Frameworks/<framework name>.framework/

必需 – 要对主应用程序可执行文件进行签名:

cp  <path to main app mobile provision>  OUTPUT_FOLDER/Payload/<app_name>.app/embedded.mobileprovision

codesign -d --entitlements :- OUTPUT_FOLDER/Payload/<app_name>.app/ > MAIN_ENTITLEMENT.plist

codesign -f -s "<Name in Keychain Access>" --entitlements MAIN_ENTITLEMENT.plist OUTPUT_FOLDER/Payload/<app_name>.app/

4.再次压缩ipa

cd OUTPUT_FOLDER && zip -qr ../<signed_ipa_name>.ipa . && cd ../

5.在此过程之后创建的ipa不应以任何形式更改。现在,该应用程序已签名,更改zip内的任何文件将篡改iOS签名,并阻止该应用程序的安装。

6.将您已签名的应用程序上载以进行验证,并验证它是否已正确签名。

对于未正确签名的每个框架,请遵循“ 签署Appdome  库”部分下的步骤。这是在融合过程中添加到您的应用程序的框架所必需的。例如F5 Anti-Bot框架。

有关阅读Appdome应用验证的更多信息,请阅读此知识库文章。

对框架进行签名后,必须再次对主要可执行文件进行签名。

主可执行文件必须最后签名,因为它包含所有框架和插件的签名。

 

扫二维码与IOS签名经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/ios企业签名咨询/签名价格咨询/技术建议/互联网交流

上一篇:如何填写ipa签名App Store Connect应用列表

下一篇:iOS代码签名:ipa签名iOS应用

郑重申明:IOS企业签名以外的任何单位或个人,不得使用该案例作为工作成功展示!
  • 咨询QQ:869349528
    邮箱:869349528@qq.com
    工作时间:08.30-23.30
友情链接: ios企业签名 微构网
Copyright © 2017-2019 www.wegto.com.版权所有  鄂ICP备19007640号-1    苹果企业签名  苹果签名  ios企业签名  
点击这里给我发消息