2015-10-16 3 views
0

J'ai créé un Top Shelf Extension pour mon application tvOS. Cela fonctionne correctement dans le simulateur. Quand je lance sur l'appareil (Dev Kit en cours d'exécution bêta tvOS 3) et je tente de charger le Top Shelf Extension, mon application obtient une erreur fatale:Erreur "dyld: bibliothèque non chargée" lors de l'utilisation d'Alamofire dans l'extension d'étagère supérieure tvOS sur l'appareil

dyld: Library not loaded: @rpath/Alamofire.framework/Alamofire 
    Referenced from: /private/var/mobile/Containers/Bundle/Application/5EF46962-235C-4330-9723-623E80E3D8BE/MyApp.app/PlugIns/MyApp TV Services Extension.appex/MyApp TV Services Extension 
Reason: image not found 

J'utilise Xcode 7.1 bêta 3, Cocoapods 0,39 .0, et Alamofire 3.0.0 sur le "tvOS" branch. Mon Podfile est la suivante:

platform :tvos, '9.0' 
use_frameworks! 

target 'MyApp' do 

end 

target 'MyApp TV Services Extension' do 
    pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'tvOS' 
    pod 'SwiftyJSON', :git => 'https://github.com/jeffbowen/SwiftyJSON.git', :commit => 'fa3fc27c14602e43f69e8d70da4fc2f9a084a987' 
end 

Je ne sais pas si cela est un problème avec Alamofire, Cocoapods ou tvOS bêta 3. Je suis coincé.

Répondre

1

Il s'avère que vous devez inclure également les pods nécessaires pour l'extension dans la cible principale. Il travaille maintenant pour moi et voilà ce que mon Podfile ressemble:

platform :tvos, '9.0' 
use_frameworks! 

def shared_pods 
    pod 'Alamofire', '~> 3.0' 
    pod 'SwiftyJSON', :git => 'https://github.com/jeffbowen/SwiftyJSON.git', :commit => 'fa3fc27c14602e43f69e8d70da4fc2f9a084a987' 
end 

target 'MyApp' do 
    shared_pods 
end 

target 'MyApp TV Services Extension' do 
    shared_pods 
end 

j'ai appris le truc shared_podshere.

+1

Notez qu'il n'est plus nécessaire de spécifier la branche tvOS car elle a été fusionnée avec la branche principale. –

0

Je pense que vous devez avoir dans votre PODFILE:

link_with 'MyAppName' 

Je l'ai utilisé Alamofire et il fonctionne lorsqu'il est utilisé avec ce projet tvOs pour afficher des vidéos YouTube trouvé here

+1

Cela ne semble pas fonctionner pour moi. Je reçois les mêmes problèmes que @Jeff. – nortchuck

+0

Merci pour la suggestion, @ frakman1. 'link_with' n'a pas fonctionné pour moi cependant. J'ai réussi en incluant les pods dans la cible d'extension ainsi que ma cible principale. Découvrez la réponse que je viens d'ajouter, @nortchuck. –

1

Vous devez supprimer votre appareil et le certificat provisioning de provisionnement à partir de votre compte développeur et créer nouveau certificat pour les deux. Après avoir créé le certificat, téléchargez ce certificat et faites-le glisser dans l'accès par clé. vous pouvez maintenant en mesure de vous voir le nouveau certificat avec le nom (Ne pas oublié de supprimer le certificat précédent et retirer de la chaîne clé aussi) maintenant votre travail est fait et aller à: -

  1. Aller à Xcode sélectionnez le compte de développeur d'équipe.
  2. Accédez à la connexion de code sélectionnez comme ios développeur (dans l'identité de signature de code et sélectionnez le profil de développeur pour tout ios sdk pour les deux déboguer et libérer).
  3. Set-content contient le code embarqué rapide à Oui par défaut est NO
  4. app Supprimer de l'appareil.
  5. Maj + Commande + k pour nettoyer la construction.
  6. Commande + B pour créer une nouvelle version.
  7. Une fois que la génération a réussi ... vous pouvez maintenant exécuter (Command + R) et fonctionner correctement.