web-dev-qa-db-ja.com

同じURLスキームを持つ複数のアプリ-iOS

新しいアプリの場合、URLスキームを使用して、他のアプリまたはWebサイトからアプリを起動できるようにします... "myapp://" ...したがって、AppStoreに別のアプリがある場合はどうなりますか。私と同じURLスキームを持っていますか?または、誰かが私のURLスキームを盗もうとした場合はどうなりますか?

43
Albert Renshaw

2つのアプリが同じカスタムURLスキームを登録する場合、実際に起動されるアプリは定義されていません。 1つが起動されますが、知る方法はありません。

これが本当のキッカーです。デバイスに同じURLスキームの2つのアプリがあり、実際に起動するアプリを削除した場合、iOSデバイスを再起動しないと、もう1つはURLによって起動されません。

最善の解決策は、カスタムURLスキームが簡単ではないことを確認することです。そのため、別のアプリが同じスキームを使用する可能性はほとんどありません。

37
rmaddy

Apple docsによると:

複数のサードパーティアプリケーションが同じURLスキームを処理するために登録する場合、そのタイプのURLを処理するために選択されるアプリケーションについては定義されていません。

Apple docs、8年連続の正確な引用:

注:複数のサードパーティアプリが同じURLスキームを処理するために登録する場合、そのスキームが与えられるアプリを決定するプロセスは現在ありません。

出典:

2019年9月の時点で、ドキュメントのこの部分はApple Webサイトから削除されました。最も近い関連ドキュメントは Register Your URL Scheme になる可能性があります。

8
Dustin

2016年に更新

Appleのポリシーは2012年以降変更されています。今日、複数のアプリが同じスキームに登録することが許可されないことが示されています。登録時間は、他の回答で説明されているセキュリティの問題を回避するため、ランタイムよりも競合に対処するためのはるかにクリーンな場所です。

注:複数のサードパーティアプリが同じURLスキームを処理するために登録する場合、そのスキームが与えられるアプリを決定するプロセスは現在ありません。

ソース: https://developer.Apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//Apple_ref/doc/uid/TP40007072-CH6- SW1

6
Bosh