2017-11-22 9 views
1

私のアプリケーションに共有拡張が統合されています。これは共有拡張のための私のplistファイルです。私のアプリが共有シートに表示されない

<key>NSExtension</key> 
    <dict> 
     <key>NSExtensionAttributes</key> 
     <dict> 
      <key>NSExtensionActivationRule</key> 
      <string>TRUEPREDICATE</string> 
     </dict> 
     <key>NSExtensionMainStoryboard</key> 
     <string>MainInterface</string> 
     <key>NSExtensionPointIdentifier</key> 
     <string>com.apple.share-services</string> 
    </dict> 

私はTruepredicateを使用するとappleが私のアプリケーションを拒否するというXcodeの警告を受け取ります。

<key>NSExtensionAttributes</key> 
    <dict> 
     <key>NSExtensionActivationSupportsImageWithMaxCount</key> 
     <integer>1</integer> 
     <key>NSExtensionActivationSupportsWebURLWithMaxCount</key> 
     <integer>1</integer> 
    </dict> 
    <key>NSExtensionMainStoryboard</key> 
    <string>MainInterface</string> 
    <key>NSExtensionPointIdentifier</key> 
    <string>com.apple.share-services</string> 
    </dict> 

下に述べたように、私は他の活性化のルールを追加することを試みたが、私はTruepredicateを削除し、ルールの上に追加した場合、私のシェア拡張子はそれ以上表示されません。 truepredicateの共有拡張機能は完璧に機能します。 ここで何をすればいいのですか? 私は音楽関連アプリのための共有拡張を持っていました。

答えて

1

タグ内に新しいkeys(例えば、NSExtensionActivationSupportsWebURLWithMaxCount )をラップする必要があります。あなたのコードでは、このバックを入れ

NSExtensionActivationRule、このキーは新しいキーの辞書を参照する必要があります。

私はios用のアプリを書いていないので、なぜ<string>TRUEPREDICATE</string>がデフォルトであるのか分かりません。私はすべてのデータ型が暗黙的に渡されることを認めています。データ型は、次のように明示的に指定する必要があります。

例:

<key>NSExtensionActivationRule</key> 
    <dict> 
     <key>NSExtensionActivationSupportsWebURLWithMaxCount</key> 
     <integer>1</integer> 
     <key>NSExtensionActivationSupportsImageWithMaxCount</key> 
     <integer>1</integer> 
     <key>NSExtensionActivationSupportsFileWithMaxCount</key> 
     <integer>0</integer>    
     <key>NSExtensionActivationSupportsMovieWithMaxCount</key> 
     <integer>0</integer>    
     <key>NSExtensionActivationSupportsText</key> 
     <false/> 
    </dict> 
    <key>NSExtensionPointName</key> 
    <string>com.apple.ui-services</string> 
    <key>NSExtensionPointVersion</key> 
    <string>1.0</string> 
    </dict> 
    <key>NSExtensionMainStoryboard</key> 
    <string>MainInterface</string> 
    <key>NSExtensionPointIdentifier</key> 
    <string>com.apple.ui-services</string> 
+0

オーケー、あなたがそれを見つけた見.. :) – nckbrz

1

My Plistファイルに間違いがあり、そのような問題に直面していたのはなぜですか。

将来誰かがこのような間違いを犯した場合、私の答えが助けになるかもしれないので、この回答を投稿するだけです!

<key>NSExtension</key> 
    <dict> 
     <key>NSExtensionAttributes</key> 
     <dict> 
      <key>NSExtensionActivationRule</key> 
      <dict> 
       <key>NSExtensionActivationSupportsText</key> 
       <true/> 
       <key>NSExtensionActivationSupportsWebURLWithMaxCount</key> 
       <integer>1</integer> 
       <key>NSExtensionActivationSupportsImageWithMaxCount</key> 
       <integer>1</integer> 
      </dict> 
     </dict> 
     <key>NSExtensionMainStoryboard</key> 
     <string>MainInterface</string> 
     <key>NSExtensionPointIdentifier</key> 
     <string>com.apple.share-services</string> 
    </dict> 

これは完璧に機能しています。

関連する問題