İçerdiği uygulamanın NSBundle
uygulamasını bir uygulama uzantısı içinden almak mümkün mü? Ana uygulamanın görünen adını değil, uzantının görünen adını öğrenmek istiyorum.Ana uygulama paketini uzantının içinden alın
9
A
cevap
18
+mainBundle
yöntemi, bir uzantıdan çağrıldığında uygulamanızın bir alt klasörü olan "geçerli uygulama yürütülebilir" paketini içeren paketi döndürür.
Bu çözüm, "appex" ile bittiğinde, paketin URL'sinden iki dizin düzeyinin soyulmasını içerir.
var bundle = Bundle.main
if bundle.bundleURL.pathExtension == "appex" {
// Peel off two directory levels - MY_APP.app/PlugIns/MY_APP_EXTENSION.appex
let url = bundle.bundleURL.deletingLastPathComponent().deletingLastPathComponent()
if let otherBundle = Bundle(url: url) {
bundle = otherBundle
}
}
let appDisplayName = bundle.object(forInfoDictionaryKey: "CFBundleDisplayName")
2,2
var bundle = NSBundle.mainBundle()
if bundle.bundleURL.pathExtension == "appex" {
// Peel off two directory levels - MY_APP.app/PlugIns/MY_APP_EXTENSION.appex
bundle = NSBundle(URL: bundle.bundleURL.URLByDeletingLastPathComponent!.URLByDeletingLastPathComponent!)!
}
let appDisplayName = bundle.objectForInfoDictionaryKey("CFBundleDisplayName")
Swift
NSBundle *bundle = [NSBundle mainBundle];
if ([[bundle.bundleURL pathExtension] isEqualToString:@"appex"]) {
// Peel off two directory levels - MY_APP.app/PlugIns/MY_APP_EXTENSION.appex
bundle = [NSBundle bundleWithURL:[[bundle.bundleURL URLByDeletingLastPathComponent] URLByDeletingLastPathComponent]];
}
NSString *appDisplayName = [bundle objectForInfoDictionaryKey:@"CFBundleDisplayName"];
Swift Objective-C Bu Pathe eğer kıracak Bir iOS uzantısı için xtension veya dizin yapısı hiç değişmez.
İlgili konular
- 1. Bir paket içinden bir matematik paketini yükleyin
- 2. Uygulama sürümü içinden uygulama sürümü notları al
- 3. EC2 örneğinin içinden ELB adını alın
- 4. Ana öğe adını XPath'te alın
- 5. C# kodunun içinden başka bir uygulama başlatma
- 6. Uygulama içinden Android Marketplace İncelemesi'ne nasıl bağlanır?
- 7. Paket Adından Uygulama Bilgilerini Alın
- 8. Ana sayfa işlevlerini uygulama. PHP
- 9. Tepki: Durum verilerini ana bileşene alın
- 10. Çocuğun ana sınıfı adını ES6 ile alın.
- 11. jQuery geri aramaları içinde ana nesneyi alın
- 12. Java/Swing: Pencereyi/JFrame'i bir JPanel içinden alın
- 13. WPF çocuk ItemsControl veri şablonunun içinden ana ItemsControl bağlanma
- 14. WPF, ana pencerede UserControl içinden durum çubuğu güncelleniyor
- 15. Docker kabının içinden dosyayı ana makineye kopyalamak istiyorum
- 16. migratordotnet - Göçmenleri uygulamanın içinden yürütmek için uygulama içinden geçişler yap (wc ya da oluşturma)
- 17. React native paketini bulamadı
- 18. Uygulama İçi AppLink'in yeni sürümünde satın alın
- 19. iPhone ana ekranında bir uygulama tespit edin
- 20. Ana yöntem, uygulama veya MIDlet bulunamadı
- 21. Oluşturulan bir uygulama içinden oluşturulan .NET derlemesini hata ayıklama
- 22. App Store'a (uygulama içinden) program aracılığıyla nasıl gidilir?
- 23. Raylar uygulaması oluştururken bir raylar şablon içinden uygulama adından erişme
- 24. bir laravel paketini Yani
- 25. Bir SalesForce paketini nasıl yedeklerim?
- 26. İçinden Ekle
- 27. Chrome uzantımın açılır sayfasını uzantının içerik komut dosyasından nasıl açabilirim?
- 28. Üçüncü taraf OSGI paketini maven aracılığıyla dağıtın
- 29. benim çözüm Birlik paketini eklemek çalışıyorum Nuget paketini
- 30. Ruby String # paketini açmak
Bunun için teşekkürler! Bu şekilde onaylanmış bir AppStore uygulaması edinebildiniz mi? – ewindsor
Evet, burada özel API'ler kullanılmamaktadır. Bunu, ana iOS uygulama paketinden bir 'UIManagedDocument' için yönetilen nesne modelini yüklemek için watchOS 1 uzantımızda kullandık. – phatblat
Ah harika. Anlayış için teşekkürler. – ewindsor