Soru NSUserDefaults yoluyla bir Enterprise App Yapılandırmak için MDM kullanma


Kurumsal uygulamamı iOS7 çalıştıran yönetilen bir cihaza aktarmak için 10.9'da OS X Server 3.0.1'de Profil Yöneticisi kullanıyorum. Bu iyi çalışıyor ve cihaz yapılandırma ayarlarını da yapabilirim.

Yol gösterilmem, Apple'ın örnek projesinde sunulan bilgileri nasıl alacağımız ManagedAppConfigve Profil Yöneticisi tarafından dağıtılan bir uygulamaya uygulayın.

ManagedAppConfig, daha sonra uygulama yapılandırması için kullanılan bir uygulamanın NSUserDefaults'larına veri koymak için kullanılması gereken basit bir plist sağlar; Ancak, bu veri sözlüğünü NSUserDefaults'a almak için MDM'nin nasıl kullanılacağı konusunda bir yön yoktur.

Açık bir şekilde, bir yönetilen uygulamanın NSUSerDefaults'larına bir veri aktarımı göndermek için bir bilgi parçasını kaçırıyorum, ancak şu ana kadar aramalarım sonuçsuz kaldı. Profil Yöneticisi ile buna mümkün mü? Henüz bulamadığım OS X Server ile başka bir yolu var mı?

İşte Apple'ın ManagedAppConfig belgesindeki bir alıntı:

"ManagedAppConfig", yönetilen uygulamayı nasıl uygulayacağını gösterir   iOS uygulamasında yapılandırma ve geri bildirim desteği. Bu   işlevselliği bir Mobil Aygıt Yönetimi (MDM) sunucusunun itmesine izin verir   Yönetilen uygulamanın NSUserDefaults'una bir sözlük aşağı   ayarları uzaktan yapılandırma amaçları.

İşte, uygulamanın NSUserDefaults'ına bir şekilde yerleştirilen iki veri parçasına örnek olarak bakalım:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>serverURL</key>
    <string>http://developer.apple.com/</string>
    <key>disableCloudDocumentSync</key>
    <true/>
</dict>
</plist>

NSUserDefaults için dokümanlar MDM ile konfigürasyondan bahseder, ancak hiçbir özellik verilmez.

Uygulamanız yönetilen ortamları destekliyorsa,   Hangi tercihlerin bir yönetim tarafından yönetildiğini belirlemek için NSUserDefaults nesnesi   kullanıcının yararı için yönetici. Yönetilen ortamlar   Bir yönetici veya bilgisayar laboratuarlarına veya sınıflarına karşılık gelir   Öğretmen sistemleri belirli bir şekilde yapılandırmak isteyebilir. İçinde   Bu durumlar, öğretmen bir dizi varsayılan belirleyebilir   tercihler ve bu tercihleri ​​kullanıcılara zorlar. Tercih ise   Bu şekilde yönetilen uygulamalar, kullanıcıların düzenleme yapmasını engellemelidir   Uygun kontrolleri devre dışı bırakarak tercih.

Öğleden sonra, bu zor bilgi parçasını başarıya ulaşmadan geçirdim, dolayısıyla SO topluluğunun yardımını istiyorum. NSUserDefaults içine bir veri sözlüğünü yapıştırmak için MDM kullanmam gereken bilgiye beni kimse yönlendirebilir mi?

Çok teşekkürler.


18
2017-12-23 22:39


Menşei


Bunu işe almak mümkün mü? ManagedAppConfig projesindeki yönergeler izlenirse, bu çoğu MDM ile çalışır mı? - Heinrich
Herhangi biri, hava izleme mdm çözümü ile yardımcı olabilir. Url, portnumber göndermek için Airwatch içinde mdm yapılandırmaya çalışıyorum. - Durgaprasad


Cevaplar:


Apple’dan ManagedAppConfig’i test etmeyle ilgili küçük bir blog yazısı yazdım.

http://tomasmcguinness.com/2014/03/07/exploring-apples-managedappconfig-demo/

Açıklama: Bu yazı yazdığım www.testmdmapp.com'u kullanarak açıklamaktadır.


14
2018-03-07 15:24



Blogpostunuzu kullanarak uygulamayı yapılandırmaya çalıştığımda mesaj uygulamasının yönetilmediğini görüyorum. Lütfen bana bir şey öner misiniz? - Imran
Sadece bir MDM ile yüklenen uygulamalar yapılandırılabilir. Durumunuzda, önce TestMDM'yi kullanarak uygulamanızı yüklemeniz ve ardından yapılandırma adımını gerçekleştirmeniz gerekir. - Tomas McGuinness
@tomasmcguinness Cevabınız için teşekkürler. İOS 8'de yönetilen uygulama yapılandırmasıyla ilgili garip bir sorunla karşılaştık: stackoverflow.com/questions/29231487/.... Bu konuda bir şey biliyor musun? - alexey
Tomas, Hacim Satın Alma Programı (B2B Mağazası) aracılığıyla dağıtılan uygulamalarla yönetilen uygulama yapılandırmasını kullanmanın mümkün olup olmadığını biliyor musunuz? Bu Apple'ın izin verdiği bir şey mi? Öyleyse, uygulama onay süreci sırasında bunu nasıl yaparlar? - rideintothesun
Öyle inanıyorum. B2B, erişimin sınırlı olması haricinde standart VPP olarak çalışır. Yönetilen uygulama yapılandırması söz konusu olduğunda, uygulamanın nasıl onaylanacağını (gerekirse) açıklayan uygulama onay sürecinde hiçbir şey yoktur. Daha ayrıntılı olarak tartışmak isterseniz bana bir e-posta gönderin. - Tomas McGuinness


Bir MDM sunucusundan aşağı itilen yönetilen uygulama yapılandırması değişiklikleri NSUSerDefaults Böylece, herhangi bir değişiklikten haberdar olmak için bir gözlemci ekleyebilirsiniz. NSUserDefaults. MDM sunucusundan indirilen Yönetilen uygulama yapılandırma sözlüğü aşağıdaki adda saklanır: com.apple.configuration.managed

Uygulamanız, geri bildirim içeren bir sözlüğü de MDM sunucusuna gönderebilir. Geri bildirim olarak MDM sunucusuna geri gönderilen sözlük bu anahtarda saklanmalıdır. com.apple.feedback.managed

Tüm bunları test etmek için bir MDM sunucusu tarafından yönetilen bir cihaza ihtiyacınız olacak ve uygulama ApplicationConfiguration ayarını ve ManagedApplicationFeedback komutlarını destekleyen MDM sunucusu tarafından kurulmalıdır.

Örnek uygulamanın readme.txt dosyası, bu uygulamanın bir demosu için WWDC 2013 Oturum 301 "Kurumsal ve Eğitim Kullanımı İçin Uygulamalarınızı Genişletme" konusunu öneriyor.


7
2018-02-20 23:06



NSUserDefaults ile herhangi bir iOS uygulaması bir MDM tarafından yapılandırılabilir mi yoksa buna izin vermek için fazladan adımlar atmanız mı gerekiyor? Bir müşteriye vereceğim bir uygulama yazdım ve uygulama tercihlerini MobileIron aracılığıyla kullanıcılara zorlamak istiyorlar. - Heinrich
Özellikle uygulamamla birlikte bir ManagedAppConfig.plist'inin olması gerekiyor mu? Örnek uygulama projede bir tane gösterir, ancak belgeler bu dosyanın yalnızca MDM ile göndermek için kullanıldığını belirtir. - Nick N


yapılandırmayı okumak için (hızlı 3):

if let managedConf = UserDefaults.standard.object(forKey: "com.apple.configuration.managed") as? [String:Any?] {
    if let serverURL = managedConf["serverURL"] as? String{
        return serverURL
    }
}
if let serverURL = Bundle.main.object(forInfoDictionaryKey: "serverURL") as? String {
    return serverURL
}
return  "https://apple.com/"

Gördüğünüz gibi - uygulamanın MDM bundle yapılandırmasından okumayı manuel olarak etkinleştirmesi gerekiyor.

P, S: Yalnızca yönetilen uygulamalar bu yapılandırmaları alabilir.


4
2018-03-30 17:06