2013-03-09 127 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" 

希望這有助於旁邊的人用同樣的問題

相關問題