2013-03-09 63 views
5

我想构建一个单独的窗口Mac应用程序,该应用程序可用于在不使用XCode的情况下对iOS应用程序进行编码。在不使用XCode的情况下为iOS应用程序启用(启用APNS)

我们的许多客户使用“企业许可证”来分发他们的应用程序。每年他们都需要辞职,而且这是一项重复的工作。他们的要求下

  1. 应用程序使用APNS的
  2. 他们不想分享他们的企业许可证
  3. 捆绑标识符,而与他们的证书签名应更换
  4. 他们有相同名称的证书在钥匙串

用户接口具有以下字段

  1. 的路径* .ipa文件
  2. 的路径*文件名为.mobileprovision
  3. (可选柜面多个证书存在同名)
  4. 钥匙扣名
  5. 证书(iPhone Developer的名称:.. ...)

能够协同设计应用程序,但APNS辞职后不能正常工作。或者是否不可能使用bundleIdentifier来退出应用程序?

此外,我还想添加Keychain中可用证书下拉列表的功能以提高可用性。任何指针都会非常有帮助

+0

所以挣扎?????? ?????? – 2013-03-09 02:44:04

+0

@AnoopVaidya是否有可能在不使用XCode的情况下使用APNS对应用程序进行编码签名? – Anupdas 2013-03-09 02:45:32

+1

您可以通过命令行对代码进行编码,但请相信我,您不想。 – CodaFi 2013-03-09 02:46:38

回答

2

要启用推送通知,应用程序ID和供应配置文件需要具有苹果公司(通过门户网站)配置和允许的配置文件。您只能通过辞职来禁用任意配置配置文件/应用程序。

在编码分配期间,权利需要将apns-environment键设置为​​/production,具体取决于应用使用的内容。这将在iOS运行时进行验证。如果您使用的是第三方签名工具,则应取取自供应配置文件的apns-environment值。

对于调试,你可以看看权利与此命令的.app:

codesign -d --requirements - --entitlements - path/to/My.app 

您应该看到一个apns-environment价值,但前提是供应配置文件有这样的功能。

+0

感谢您的回复。正如你所提到的,AppId和mobileprovision是按照标准配置的。要求是使用一个有效的mobileprovision来辞职,该mobileprovision可能有或没有与之前的应用程序相同的应用程序。所以如果我可以从我的mobileprovision中获取appid和授权,并将其提供给codeign任务。应用程序应该成功地进行编码,不是吗? – Anupdas 2013-03-13 15:54:15

+0

它应该工作,是的。我们使用我们开发的内部脚本来处理这类事情。您基本上需要更新Info.plist(使用新的应用程序ID),应用程序内的授权(通过codesigning)和embedded.mobileprovision。只要这一切都做得正确,它应该工作。 – 2013-03-13 16:01:25

+0

这很好,事实上我独立完成了相同的工作。我从mobileprovision中提取plist,提取应用程序标识符,然后复制info.plist,然后更改CFBundleIdentifier并使用授权信息为应用程序进行编码。它现在可以工作,但这一切似乎非常黑客。我已经接受你的答案。再次感谢。 – Anupdas 2013-03-13 16:06:02

1

刚花了几个小时研究这个相同的问题,并发现了以下过程。迈克的进一步评论,提供以下命令行为其他人遇到同样的问题。

我开始使用已配置生产推送通知的捆绑ID的xcode发布版本。

从终端窗口中运行以下命令 - 用您的信息替换“保节”

codesign -d --entitlements -"NAME OF APP.app" > entitlements.plist 

codesign -f -s "SIGNING CERTIFICATE NAME" --resource-rules "NAME OF APP.app/ResourceRules.plist" --entitlements entitlements.plist "NAME OF APP.app" 

希望这有助于旁边的人用同样的问题

相关问题