2016-03-12 1 views
10

J'ai configuré des groupes d'applications pour mon application hôte et l'extension de partage. L'identifiant ressemble à "group.com.abc.xyzApp". Existe-t-il un moyen d'obtenir cette chaîne par programme? En outre, comment puis-je détecter si des groupes d'applications sont définis par programme? La tentative d'initialisation d'un conteneur de fichiers ou d'un utilisateur par défaut avec l'identificateur du groupe d'applications est-elle suffisante pour le savoir? Par exemple:Existe-t-il un moyen d'obtenir l'identifiant du groupe d'applications depuis l'application hôte et de partager l'extension sur iOS?

[[NSUserDefaults alloc] initWithSuiteName:@"group.com.abc.xyzApp"].

+0

Salut @Shwethascar, Avez-vous trouvé la solution? –

+0

@ W.S non je n'ai pas. J'ai fini par utiliser des chaînes prédéfinies pour les identifiants. – Shwethascar

+0

NSString * chemin = [[NSBundle mainBundle] pathForResource: @ "MyApplicationTargetName" ofType: @ "entitlements"]; NSDictionary * dict = [[NDDictionary alloc] initWithContentsOfFile: chemin]; NSArray * appGroups = [dict objetForKey: @ "com.apple.security.application-groups"]; J'étais capable de lire le tableau de groupes en utilisant le code ci-dessus. Maintenant, j'essaie de trouver le nom du fichier de droits d'émission par programme, donc WatchKit Extension et App à la fois lire son groupe d'applications par programmation sans chaîne codée en dur. –

Répondre

0

Vous ne pouvez pas détecter si vous obtenez quelque chose programatically, mais je pense que ce n'est pas très utile.

Pourquoi avez-vous besoin de changer cela? par environnement peut-être? Si oui, vous pouvez le faire par des variables du projet, puis l'ajouter à votre info.plist

enter image description here

enter image description here

Plus tard, vous pouvez l'obtenir avec:

main.object(forInfoDictionaryKey: "AppGroupId") as? String 

Hope this aide