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

如何在没有XCODE的情况下重新ios企业签名

2019-09-15 21:34 栏目:ios企业签名 查看()

ios企业签名应用程序商店签名是一个繁琐的过程,当它没有Xcode时,很多事情都可能出错。本指南提供了有关如何在没有Xcode的情况下重新签名iOS / tvOS存档的详细分步说明。当您拥有需要转换为IPA的xcarchive文件,然后使用不同的配置文件和证书进行苹果企业签名时,可以使用此方法。这还描述了如何更改ipa签名应用程序的包ID。

一般文件夹结构

  • .app文件可以在.xcarchive文件的Products文件夹中找到
  • 可以在.app文件中找到Frameworks文件夹。
  • 可以在.app文件中的Plugins文件夹中找到该应用程序的所有扩展

创建IPA文件和Entitlements文件

  • 首先,从现有存档文件中提取权利。这些稍后需要用于签署IPA文件。运行以下命令将权利提取到.plist文件中。为主应用程序和项目中的任何插件/扩展执行此操作。

codesign -d --entitlement: -  OUTPUT_FOLDER / Payload / APP_NAME.app> APP_NAME_ENTITLEMENT.plist

codesign -d --entitlements: -  OUTPUT_FOLDER / Payload / APP_NAME.app / PlugIns / EXTENSION_NAME.appex> EXTENSION_NAME_ENTITLEMENT.plist

  • 接下来,从提供的xcarchive文件创建IPA文件。原因是xcarchive文件无法签名,只能签署IPA文件。从Products文件夹中检索.app文件,并将其放在名为“Payload”的新文件夹中。还从xcarchive中检索“SwiftSupport”文件夹,并将其放在与Payload文件夹相同的级别。

如果缺少SwiftSupport文件夹,Apple会在验证过程中拒绝构建,同时上传到app store connect。现在,将这两个文件夹压缩在一起以创建一个新的zip文件。将zip重命名为任何名称,并将扩展名更改为.ipa。你现在有了你的IPA文件。

删除现有签名

  • 现在,解压缩IPA文件以删除现有签名并重新签名。运行以下命令以解压缩IPA文件。

unzip -q YOUR_IPA.ipa -d / OUTPUT_FOLDER_PATH

  • 接下来,从先前创建的IPA文件中删除现有签名(如果有)。由于我们需要从框架,主应用程序和IPA中的任何应用程序扩展中删除签名,因此这一步骤更具参与性。首先,运行以下命令从框架中删除签名

rm -r YOUR_APP.app/Frameworks/*/_CodeSignature(应该在Payload目录中)

  • 然后从.app和所有.appex(如果有的话)中删除签名。运行以下命令以执行上述操作。在运行这些目录之前,请确保它们位于正确的目录中。

rm -rf _CodeSignature

替换配置文件

  • 接下来,用新的配置文件替换现有的配置文件。需要将新的配置文件复制为embedded.mobileprovision。这需要对main .app文件以及所有.appex文件(如果有的话)进行。运行以下命令。命令替换main .app文件的配置文件

cp / PATH_TO_NEW_PROVISIONING_PROFILE_FOR_MAIN_APP /PATH_TO_EXTRACTED_IPA_DIRECTORY/Payload/YOUR_APP.app/embedded.mobileprovision

  • 用于替换.appex文件的配置文件的命令(如果有)

cp / PATH_TO_NEW_PROVISIONING_PROFILE_APP_EXTENSION /PATH_TO_EXTRACTED_IPA_DIRECTORY/Payload/YOUR_APP.app/PlugIns/YOUR_APP_EXTENSION.appex/embedded.mobileprovision

  • (可选)如果需要更改软件包ID,可以通过打开“Payload”文件夹中的info.plist文件来完成。请注意,如果要更改主应用程序的软件包ID,也需要对扩展程序进行相同的操作。可以从.appex文件中访问扩展的info.plist文件。此外,您可以从info.plist文件中更改/删除版本号。但是,您还需要确保对扩展程序执行此操作。

对所有目标进行编码

现在,是时候对IPA文件进行编码。这一步骤再次涉及,需要按照此处所述的相同顺序完成。这个顺序很重要。必须先签署内部文件夹。

  • 首先,我们需要对框架进行协调设计。运行以下命令以立即对所有框架进行编码。

codesign -f -s“iPhone Distribution:YOUR_CERTIFICATE_NAME”YOUR_APP.app/Frameworks/*(应该在Payload文件夹中)

  • 接下来,我们需要签署所有应用扩展程序(如果有的话)。对存档中的每个扩展运行以下命令。

codesign -f -s“iPhone Distribution:YOUR_CERTIFICATE_NAME”--entitlements /PATH_TO_ENTITLEMENTS_FILE.plist /PATH_TO_EXTRACTED_IPA_DIRECTORY/Payload/YOUR_APP.app/PlugIns/YOUR_APP_EXTENSION.appex

  • 最后,需要签署主ios签名应用程序。运行以下命令以对.app文件进行签名

codesign -f -s“iPhone Distribution:YOUR_CERTIFICATE_NAME”--entitlements /PATH_TO_ENTITLEMENTS_FILE.plist /PATH_TO_EXTRACTED_IPA_DIRECTORY/Payload/YOUR_APP.app

而且,我们已经完成了。现在一切都需要打包。运行以下命令将所有内容压缩回来。

zip -qr ../YOUR_APP-RESIGNED.ipa。

注意:执行代码签名过程时,我注意到我一直收到以下错误:

“代码签名失败,错误'资源分叉,Finder信息或类似的碎屑不允许”。

这是iOS 10,macOS Sierra,watchOS 3和tvOS 10引入的安全加固更改。代码签名不再允许应用程序包中的任何文件具有包含资源分支或Finder信息的扩展属性。

为了解决这个问题,请运行以下命令:

xattr -lr /PATH_TO_YOUR_.APP_FILE(查看导致此错误的文件)

xattr -cr /PATH_TO_YOUR_.APP_FILE(这会从您的应用包中删除所有扩展属性)

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

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

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

上一篇:每个App Developer只能有一个分发证书吗?

下一篇:更新iOS企业签名发行证书的最佳方法是什么?

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