在不使用XCode的情况下对iOS应用程序进行协调设置(APNS已启用)

时间:2013-03-09 02:42:02

标签: ios objective-c xcode macos code-signing

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

我们的许多客户使用“Enterprise License”来分发他们的应用程序。每年他们都需要辞职并重复工作。他们的要求如下:

  1. 应用程序使用APNS
  2. 他们不想分享他们的企业许可证
  3. 使用证书签名时,捆绑标识符应该可以替换
  4. 他们在Keychain中有相同名称的证书
  5. Userinterface具有以下字段

    1. * .ipa文件的路径
    2. * .mobileprovision文件的路径
    3. 钥匙串名称(可选择包含多个具有相同名称的证书)
    4. 证书名称(iPhone开发人员:.....)
    5. 能够编码应用程序,但 APNS在辞职后无法正常工作。或者是否无法使用bundleIdentifier来辞职?

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

2 个答案:

答案 0 :(得分:2)

要启用推送通知,应用程序ID和配置文件需要由Apple(通过门户网站)配置和允许。您无法通过辞职来为任意配置文件/应用启用它。

在代码签名期间,权利需要将apns-environment密钥设置为sandbox / production,具体取决于应用使用的内容。然后,这将在运行时由iOS验证。如果您使用的是第三方签名工具,则从配置文件中获取apns-environment值。

对于调试,您可以使用以下命令查看.app的权利:

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

您应该会看到apns-environment值,但前提是配置文件已启用。

答案 1 :(得分:1)

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

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

在终端窗口中运行以下命令 - 将“CAPITAL SECTIONS”替换为您的信息

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"

希望这可以帮助下一个挣扎于同一问题的人