watchOS sorunlarını giderme
Bu sayfa, karşılaşabileceğiniz sorunlara yönelik ek bilgiler ve geçici çözümler içerir.
Xcode Interface Builder için arabirim denetleyicisi dosyalarını el Ile ekleme .
Bilinen Sorunlar
Genel
daha önceki Mac için Visual Studio sürümleri, AppleCompanionSettings simgelerinden bir şekilde 88x88 piksel olduğunu gösteriyor; bu, uygulama mağazası 'na göndermeye çalışırsanız eksik simge hatasına neden olur. Bu simge 87x87 piksel ( @3x Retina ekranları için 29 birim) olmalıdır. bu Mac için Visual Studio, xcode 'da görüntü varlığını düzenleyin ya da Contents. json dosyasını el ile düzenleyin.
izleme uzantısının Project ınfo. plist WKApp demeti kimliği , izleme uygulamasının paket kimliğiyleeşleşecek şekilde doğru şekilde ayarlanmamışsa , hata ayıklayıcı bağlanamaz ve Mac için Visual Studio "hata ayıklayıcının bağlanması bekleniyor"iletisiyle birlikte bekler.
Hata ayıklama, bildirim modunda desteklenir, ancak güvenilmez olabilir. Yeniden deneme bazen çalışır. Uygulamanın Info. plist ' i, iOS üst/kapsayıcı uygulamasının (yani iPhone çalışan) paket tanımlayıcısıyla eşleşecek şekilde ayarlandığını onaylayın.
iOS Tasarımcısı, bakış veya bildirim arabirimi denetleyicileri için giriş noktası okları göstermez.
WKNotificationControllersGörsel taslağa iki tane ekleyemezsiniz. Geçici çözüm:notificationCategorygörsel taslak XML 'teki öğesi her zaman aynı şekilde eklenirid. Bu sorunu geçici olarak çözmek için iki (veya daha fazla) bildirim denetleyicisi ekleyebilirsiniz, film şeridi dosyasını bir metin düzenleyicisinde açabilir ve sonraidöğeyi benzersiz olacak şekilde el ile değiştirebilirsiniz.Uygulamayı başlatmaya çalışırken "uygulama derlenmedi" hatasını görebilirsiniz. Bu, başlangıç projesi gözcü uzantısı projesine ayarlandığında bir Temizleme sonrasında oluşur. Bu çözüm, derlemeyi yeniden oluşturma işlemini seçip uygulamayı yeniden başlatmayı seçmelidir.
Simge görüntülerinden alfa kanalını kaldırma
Simgeler bir alfa kanalı içermemelidir (alfa kanalı bir görüntünün saydam alanını tanımlar), aksi takdirde uygulama, şuna benzer bir hata ile uygulama mağazası gönderimi sırasında reddedilir:
Invalid Icon - The watch application '...watchkitextension.appex/WatchApp.app'
contains an icon file '...watchkitextension.appex/WatchApp.app/Icon-27.5@2x.png'
with an alpha channel. Icons should not have an alpha channel.
Önizleme uygulamasını kullanarak Mac OS X alfa kanalını kaldırmak kolaydır:
Önizleme ' de simge görüntüsünü açın ve ardından Dosya dışarı aktar' ı seçin.
Bir alfa kanalı mevcutsa görüntülenen iletişim kutusunda bir Alfa onay kutusu bulunur.

Alfa onay kutusunun işaretini kaldırın ve dosyayı doğru konuma kaydedin .
Simge görüntüsü artık Apple 'ın doğrulama denetimlerini iletmelidir.
Arabirim denetleyicisi dosyalarını el ile ekleme
Önemli
Xamarin 'in WatchKit desteği, aşağıda özetlenen adımları gerektirmeyen iOS tasarımcısında (hem Mac için Visual Studio hem de Visual Studio) izleme görsel taslakları tasarlamayı içerir. Mac için Visual Studio özellikler panelinde bir arabirim denetleyicisine bir sınıf adı vermeniz yeterlidir ve C# kod dosyaları otomatik olarak oluşturulur.
Xcode Interface Builder kullanıyorsanız, izleme uygulamanız için yeni arabirim denetleyicileri oluşturmak ve Xcode ile eşitlemeyi etkinleştirmek için aşağıdaki adımları izleyin:
İzleme uygulamasının arabirimini açın. Xcode Interface Builderfilm şeridi .

InterfaceControllerFilm şeridi üzerine yeni sürükleyin:
Artık denetimleri arabirim denetleyicisi üzerine sürükleyebilirsiniz (örn. Etiketler ve düğmeler), ancak hiçbir . h üstbilgi dosyası olmadığından, henüz outbir veya eylemleri oluşturamazsınız. Aşağıdaki adımlar gerekli . h üst bilgi dosyasının oluşturulmasına neden olur.

görsel taslağı kapatın ve Mac için Visual Studio geri dönün. Uygulama uzantısı projesinde yeni bir C# dosyası ( ya da istediğiniz adı) oluşturun (görsel TASLAĞıN bulunduğu izleme uygulaması değil). Aşağıdaki kodu ekleyin (ad alanı, ClassName ve Oluşturucu adını güncelleştiren):
using System; using WatchKit; using Foundation; namespace WatchAppExtension // remember to update this { public partial class MyInterfaceController // remember to update this : WKInterfaceController { public MyInterfaceController // remember to update this (IntPtr handle) : base (handle) { } public override void Awake (NSObject context) { base.Awake (context); // Configure interface objects here. Console.WriteLine ("{0} awake with context", this); } public override void WillActivate () { // This method is called when the watch view controller is about to be visible to the user. Console.WriteLine ("{0} will activate", this); } public override void DidDeactivate () { // This method is called when the watch view controller is no longer visible to the user. Console.WriteLine ("{0} did deactivate", this); } } }Uygulama uzantısı projesinde yeni bir New C# dosyası myınterfacecontroller. Designer. cs oluşturun ve aşağıdaki kodu ekleyin. Ad alanı, ClassName ve özniteliği güncelleştirdiğinizden emin olun
Register:using Foundation; using System.CodeDom.Compiler; namespace HelloWatchExtension // remember to update this { [Register ("MyInterfaceController")] // remember to update this partial class MyInterfaceController // remember to update this { void ReleaseDesignerOutlets () { } } }İpucu
bu dosyayı, Mac için Visual Studio Çözüm Bölmesi diğer C# dosyasına sürükleyerek ilk dosyanın alt düğümü yapabilirsiniz (isteğe bağlı olarak). Daha sonra şöyle görünür:

Xcode eşitlemesinin kullandığımız yeni sınıfı (özniteliği aracılığıyla) tanıması için derleme derlemesi All ' ı seçin
Register.Uygulamayı izle film şeridi dosyasına sağ tıklayıp xInterface Builder Code ile aç' ı seçerek film şeridini yeniden açın:

Yeni arabirim denetleyicinizi seçin ve yukarıda tanımladığınız ClassName, örn.
MyInterfaceController. Her şey doğru şekilde çalıştıysa, sınıf: açılan listesinde otomatik olarak görünmelidir ve buradan seçim yapabilirsiniz.
Film şeridini ve kodu yan yana görebilmeniz için Xcode (iki çakışan daire olan simge) içinde yardımcı düzenleyici görünümünü seçin:

Odak kod bölmesinde olduğunda, . h üst bilgi dosyasına baktığınızdan ve içerik haritası çubuğuna sağ tıklayıp doğru dosyayı (myınterfacecontroller. h) seçerek emin olun.

Artık film şeridi ' nden . h üstbilgi dosyasına CTRL + sürükleyebilirsiniz ve eylemler oluşturabilirsiniz.

Sürüklemeyi serbest bırakırsanız, bir priz veya bir eylem oluşturulup oluşturulmayacağını seçmeniz istenir ve adını seçin:

film şeridi değişiklikleri kaydedildikten ve xcode kapatıldıktan sonra, Mac için Visual Studio ' a geri dönün. Üstbilgi dosyası değişikliklerini algılar ve . Designer. cs dosyasına otomatik olarak kod ekler:
[Register ("MyInterfaceController")] partial class MyInterfaceController { [Outlet] WatchKit.WKInterfaceButton myButton { get; set; } void ReleaseDesignerOutlets () { if (myButton != null) { myButton.Dispose (); myButton = null; } } }
Artık, denetime başvurabilir (veya eylemi uygulayabilirsiniz) C#!
Izleme uygulamasını komut satırından başlatma
Önemli
izleme uygulamasını varsayılan olarak normal uygulama modunda başlatabilir ve ayrıca Mac için Visual Studio ve Visual Studio özel yürütme parametrelerini kullanarak da bir bakışta veya bildirim modlarında başlatabilirsiniz.
İOS simülatörünü denetlemek için komut satırını da kullanabilirsiniz. İzleme uygulamalarını başlatmak için kullanılan komut satırı aracı mtouch' dir.
Aşağıda, tam bir örnek (terminalde tek bir satır olarak yürütülür) verilmiştir:
/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mtouch --sdkroot=/Applications/Xcode.app/Contents/Developer/ --device=:v2:runtime=com.apple.CoreSimulator.SimRuntime.iOS-8-2,devicetype=com.apple.CoreSimulator.SimDeviceType.iPhone-6
--launchsimwatch=/path/to/watchkitproject/watchsample/bin/iPhoneSimulator/Debug/watchsample.app
Uygulamanızı yansıtmak için güncelleştirmeniz gereken parametre launchsimwatch :
--launchsimwatch
İzleme uygulamasını ve uzantıyı Içeren iOS uygulaması içinana uygulama paketinin tam yolu.
Not
sağlamanız gereken yol, iOS simülatörünü dağıtılacak ve hem gözcü uzantısını hem de gözcü uygulamasını içeren iPhone application. app dosyasıiçindir.
Örnek:
--launchsimwatch=/path/to/watchkitproject/watchsample/bin/iPhoneSimulator/Debug/watchsample.app
Bildirim modu
Uygulamanın bildirim modunutest etmek için, parametresini olarak ayarlayın ve test bildirimi yükü içeren bir JSON dosyasına bir yol sağlayın.
Bildirim modu için yük parametresi gereklidir .
Örneğin, bu bağımsız değişkenleri mtouch komutuna ekleyin:
--watchlaunchmode=Notification --watchnotificationpayload=/path/to/file.json
Diğer bağımsız değişkenler
Kalan bağımsız değişkenler aşağıda açıklanmıştır:
--sdkroot
Gereklidir. Xcode yolunu belirtir (6,2 veya üzeri).
Örnek:
--sdkroot /Applications/Xcode.app/Contents/Developer/
--cihaz
Yürütülecek simülatör cihazı. Bu, belirli bir cihazın UDID veya çalışma zamanı ve cihaz türünün bir birleşimi kullanılarak iki şekilde belirtilebilir.
Tam değerler makineler arasında farklılık gösterir ve Apple 'ın sımctl Aracı kullanılarak sorgulanabilir:
/Applications/Xcode.app/Contents/Developer/usr/bin/simctl list
UDID
Örnek:
--device=:v2:udid=AAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE
Çalışma zamanı ve Cihaz türü
Örnek:
--device=:v2:runtime=com.apple.CoreSimulator.SimRuntime.iOS-8-2,devicetype=com.apple.CoreSimulator.SimDeviceType.iPhone-6
