如何将 iOS 应用程序发送给客户端,让他们进行代码签名

Posted

技术标签:

【中文标题】如何将 iOS 应用程序发送给客户端,让他们进行代码签名【英文标题】:How can I send iOS app to client, for them to code-sign 【发布时间】:2011-02-07 09:59:38 【问题描述】:

我们为客户创建了一个 ios 应用,希望他们对其进行代码签名和分发。

最好的方法是什么?如果我构建和存档,然后共享并保存到磁盘(不重新签名),我会根据需要获得 .ipa。我的问题是客户如何在其中包含他们的配置?不幸的是,将代码发送给客户端不是一种选择,因为我们需要保留源代码。

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

告诉您的客户创建配置文件。

客户必须从钥匙串访问中导出他的证书和密钥,并向您发送他的证书、密钥和配置文件。您可以在您的机器上安装所有内容,使用客户的配置文件构建应用程序并发送构建。

从客户的角度来看,这应该是足够安全的,只要他不与您分享他的苹果密码。

【讨论】:

你能告诉我他们需要从他们的钥匙串中准确发送哪些密钥和证书吗?【参考方案2】:

如果您的客户在“iOS Provisioning Portal”拥有“代理”级别,他可以将您添加为“管理员”级别。因此,您将拥有较少的访问级别,但能够为他提供“开发”版本(在许多方面与分发相同)。

这个解决方案比要求客户导出他的私钥要好得多,特别是如果他没有这方面的经验

【讨论】:

【参考方案3】:

查看 Erica 苏丹的 App Signer。此实用程序允许使用不同的配置文件对未签名的 IPA 进行签名。

易于使用,非常适合您的需求。

http://ericasadun.com/ftp/Macintosh/

显然,这一切都取决于他们是否拥有 iOS 开发者合同并创建了自己的配置文件

【讨论】:

【参考方案4】:

只需使用您的证书和配置文件创建一个 xarchive 并将其传递给客户端

客户可以使用 xcode 打开 xarchive,他们可以使用他们的分发证书和配置文件退出并将其发布到应用商店

附注:

确保客户端在会员中心的app id中添加了相同的Bundle Identifier

确保客户的配置文件反映了您的项目功能,即推送通知等

如果是权利,客户必须进入应用程序并手动更改权利。

他们必须在文本编辑器中打开的文件是 archived-expanded-entitlements.xcent 并使用他们的团队 ID 更改 PREFIX,可以找到 here

 <key>application-identifier</key>
    <string>PREFIX.yourappBundleID</string>

<key>keychain-access-groups</key>
<array>
    <string>PREFIX.yourappBundleID</string>
</array>

最好让客户确保 get-task-allowfalse,以防万一您已与开发签名者签署了您的 xarchive

 <key>get-task-allow</key>
    <false/>

APNS 也是如此

<key>aps-environment</key>
<string>production</string>

仅供参考: 由于他们的安全准则,我认识的许多公司都遵循此流程

【讨论】:

这绝对是最好的答案。你知道它是如何与 XCode 12 一起工作的吗?生成未签名的 xcarchive,将其发送给客户端进行签名,给他错误(缺少推送通知的权利)【参考方案5】:

我不太确定您是否可以按照您想要的方式辞职应用程序,但我想这是不可能的。因此,要解决源代码问题,您可以从您的代码中编译一个静态库并创建一个包装 Xcode 项目,该项目会生成一个您可以发送给您的客户端的新应用程序。所以代码对他来说是不可见的,但他可以毫不费力地编译它。

【讨论】:

以上是关于如何将 iOS 应用程序发送给客户端,让他们进行代码签名的主要内容,如果未能解决你的问题,请参考以下文章

如何将 iOS 应用 IPA 交付给客户以使用他们自己的企业配置文件进行签名

如何最好地与客户分享 iOS 应用程序进度

分发 iPhone 应用程序的开发版本

Fiddler探秘

如何使用swift更改wifi DNS设置iOS

如何将大文本输入 iOS 应用程序?