2013-02-05 82 views
1

我想知道軟件包版本/id在iOS設備上的當前應用程序的外部應用程序。 我該如何做到這一點?閱讀iOS軟件包信息

+3

你想知道* *不同*(閱讀:**不是由你開發**)應用程序的包版本是什麼?這是不可能的。 –

+0

它也是我開發的。是否可以通過捆綁標識符來閱讀? –

+0

您可以使用自定義URL方案,請參閱我的答案。 –

回答

2

您正在使用應用沙盒。您無法與除您之外的其他應用進行通信。

爲了讓你的版本運行的應用程序的:

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] 
+2

錯誤的答案..它會給你你的應用程序的應用程序版本,而不是其他應用程序 –

+0

正如我所說的「獲取正在運行的應用程序的版本」。這是一個額外的信息,如果你需要它。 –

+0

有用的答案,即使它不是針對這個特定的問題! :-) –

2

如果其他應用程序是由你開發,你可以使用custom URL schemes以確定是否安裝了特定版本。

對於您要檢查的每個版本,您必須將URL方案添加到其他應用程序。這個想法是,URL模式只包含當前版本和以前版本的URL模式。

版本1.0將只有com.you.your-other-app.1.0
版本1.2然而,然後有兩個或更多的URL方案:com.you.your-other-app.1.0com.you.your-other-app.1.2

然後,您可以檢查是否正在使用安裝在任何應用程序,應用程序的特定版本如下:

BOOL is10Installed = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"com.you.your-other-app.1.0://"]]; 
BOOL is12Installed = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"com.you.your-other-app.1.2://"]]; 

更新:
我在我的兩個應用程序使用的是相互之間的溝通以確定是否支持特定功能。這可能非常有用。

+0

嗨Fabian, 感謝您的回答。實際上我有實現URL Schemes的想法,但這對我來說不是最好的解決方案,因爲我的外部應用程序不會每次都更改URL方案。我需要閱讀軟件包版本以檢查是否有可用的更新。 –

+0

我每次更新時都可以更改網址方案。這也許是唯一可能的解決方案。 –

+0

是的,這就是我的意思。 ;) –