我在我的应用程序中集成了共享扩展。这是我的分享扩展的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>
我在Xcode中收到警告,如果我使用Truepredicate,那么apple将拒绝我的申请。所以我尝试添加其他激活规则,如下所述
<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共享扩展功能完美无缺。 任何人都可以帮我,我该怎么办? 我已经为音乐相关应用集成了扩展分享。
答案 0 :(得分:2)
我的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>
这完全正常!
答案 1 :(得分:1)
你必须包装新的keys
,例如NSExtensionActivationSupportsWebURLWithMaxCount
在dictionary
标记内。
将其放回代码中,
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>