Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Microsoft Windows Mağaza Store (.appx / Metro / UWP) uygulama yükleme adımları
#1
Merhaba arkadaşlar,
Microsoft Windows Mağaza Store / Metro .appx (Universal Windows Platform UWP) uygulama yükleme adımlarına ihtiyaç duyanlar olabilir:

I. Delphi kısmı 
(Pawel Glowacki Appx Development for Window 10 Store with RAD Studio youtube videosundan alınıp, güncellendi.Sadece 32 bit uygulama yüklenebiliyor. XBox için 64 bit gerekiyor)
1 Önce Windows 10'da geliştirici modunu açmak gerekiyor: Başlat-Tüm ayarlar-Güncelleştirme ve güvenlik bölümüne gidin, en altta yer alan Geliştiriciler için sekmesini tıklayın. Burada da Geliştirici modu'nu tıklamak yeterli.
2 Windows SDK için en az Delphi 10.1 Berlin Update 2 gerekli.
3 (Önceki sürümler için SDK indirme: https://developer.microsoft.com/tr-tr/wi...ws-10-sdk/ )
4 Delphi Tools- Options- Deployment- Provisioning 
Build Type: Windows 32-bit -  Application Store; Ad hoc; Create self-singed certificate...
File: C:\..Sertifikam.pfx Subject: CN=Uygulamam Password: şifrem
Sertifikam.pfx (gelmiş olmalı)
Sağ tıkla- Install PFX; Local Machine; Next; Yes; Certificate Import Wizard- Next; Password: şifrem; Next; Place all certificates in the following store- Browse- Trusted People; Next; Finish 
5 Delphi Projects- Uygulamam.exe- Release; Traget Platforms- Windows 32-bit- Configuration- Application Store
6 Project- Options- Application- Target: Windows 32-bit platform - simge seç: Logo 150x150, Logo 44x44
(Logoları Irfanview ve MSPaint ile .png formatında 65536 renk = 24 BPP olarak hazırlama tavsiye edilir)
(Bu kısımda uygulama adında Türkçe harfler varsa daha fazla ilerleyemiyorsunuz. Mesela proje adınız Özgün.dproj ise, Ozgun.dproj olarak farklı kaydedip baştan başlamak gerekiyor.)
7 Project- Options- Deployement- Provisioning- Target: Windows 32-bit platform; Build Type: 32-bit Windows - Application Store
Ad hoc: Certificate File: Sertifikam.pfx ; pasword: şifrem; 
Project- Deployment-  AppxManifest.xml, 44x44.png, 150x150.png işaretli mi, tetkik et; (veritabanı dosyaları varsa ekle) bosVeritabani, sqlite3.dll, sqlite3.def
Project- Build Uygulamam; (hata vs olmamalı) OK
Project- Deployment- Uygulamam.exe- Deploy
(Burada 2 hata veriyor: 
1 App manifest validation error: Line 20, Column 74, Reason: The max version tested value must not be less than the min version value. [PAClient Error] Error: E5128 MakeAppx : error: Package creation failed.
2 Uygulamam-unsigned.appx" (output file name) 
1. nin sebebi AppxManifest.xml içindeki bu satır: 
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14257.0" MaxVersionTested="10.0.10240.0"/>
2.nin sebebi de 1. hata. 1. hatayı düzeltmek için MinVersion düzeltmek gerekli. (Delphi Firemonkey FMX Windows 7 SP 1 = 6.1.7601.0 'ten itibaren destekliyor. Fakat Windows Store en az Windows 8.1 sürümünden itibaren sonra çıktığı ve hemen herkes Window 10 yüklediği için min. 10.0.0.0 yazmak daha iyi) AppxManifest.xml elle düzeltme kabul etmiyor. Uygulama klasöründeki AppxManifest.template.xml tek sefer değişitirmek yeterli. 
AppxManifest.template.xml notepad ile şöyle düzeltilmeli: 
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.0.0" MaxVersionTested="%maxVersionTested%" /> 
8 Project- Deployment- Uygulamam.exe- Deploy (şimdi hatasız çalışmalı. AppxManifest.xml de kendiliğinden düzelmiş olmalı.) 
\Win32\Release\Uygulamam\bin\Uygulamam.appx gelmiş olmalı. (aslında zip dosyası, total commander, winrar vs. ile içine bakılabilir, vt. dosyaları görülebilir)
9 Uygulamam.appx sağ tıkla, Open, install (hata verirse Windows 10 Developer mode kapalıdır), Launch (Başlat menüsüne ve C:\Program Files\WindowsApps\gelmiş olmalı. C:\Program Files\WindowsApps\Uygulamam_1.0.0.0_x86__1t2d8mpc6cjna)

<PublisherDisplayName>Reserved</PublisherDisplayName>  
içindeki "Reserved" yayınlayıcı adı olarak değişitirilmeli.

Veritabanı hatası düzeltme: 
Sqlite vs kullanıyorsanız ve veritabanı dosyasını da Deploy menüsünde uygulama klasörüne yüklediyseniz burada bulamıyor. Alt klasöre veya ProgramData 'ya yüklediyseniz, veya salt okunur olarak açıp kayıt hatası veriyor. Bunun sebebi Windows Store .appx uygulalamalarının C:\Program Files\WindowsApps klasörü altına en yüksek güvenlik ayarları ile yüklenmiş olması. Buraya kum havuzu (sandbox) diyorlar. Çocukları oyun parkında korur gibi uygulamanızı koruyorlar Smile Inno Setup vb kurulum uygulamalarında ulaşılabilen yetki ayarlarını burada değiştirme imkanınız yok. Uygulama klasörünü ancak Total Commander ile görebiliyorsunuz. Program Files, ProgramData gibi klasörlere de ulaşım yetkisi veremiyorsunuz. Options- Manifest- Administrator da işe yaramıyor. Yükleme klasörü C# ve Visual Basic kaynaklarındaki ApplicationData.Current.LocalFolder.Path yani Delphi'deki karşılğı TPath.GetHomePath() ( C:\Users\<geçerli kullanıcı>\AppData\Roaming ) sıkıntısız çalışıyor. Bu sefer de yüklemeden sonra tek seferlik klasör açıp boş veritabanı dosyasını kopyalamamız ve adını değiştirerek korumamız gerekiyor: 


procedure DataModuleCreate(Sender: TObject); //System.IOUtils
  yol:=TPath.GetHomePath()+'\Uygulamam\';   
  if not DirectoryExists('yol') then
    CreateDir(yol); 
   dosya:=yol+'Veritabani'; 
   CopyFile(PChar(ExtractFilePath(ParamStr(0))+'\bosVeritabani'),PChar(dosya),dogru);
  if(FileExists(dosya))then
    exit;
  RenameFile(yol+'bosVeritabani',dosya);  
  if(not FileExists(dosya))then begin
    System.SysUtils.Beep;
    showmessage('"'+yol+'" klasöründe "Veritabani" veya "bosVeritabani" dosyası bulunamadı!. Program kapatılıyor!');
    Application.Terminate;
  end;


  with FDConnectionSQLite do begin
    Close;
    Params.Clear;
    Params.Values['CharacterSet']:= 'utf8';
    Params.Database := yol + 'Veritabani';
    DriverName:='SQLite';
    try
      Open;
    except
      TForm1.caption:='Veritabanı açılamadı!';
      exit;
    end;
  end;


Veritabanı ile uygulamayı çalıştırmak için önce yüklü Appx uygulamasını Windows'tan kaldırmak lazım: Tüm ayarlar- Uygulamalar- Uygulamam tıkla, Kaldır
Klasörlere ulaşma izni vermek için AppxManifest.template.xml şu satırı eklemek gerekiyor: 
  <Capabilities>    <rescap:Capability Name="runFullTrust" />  </Capabilities>

8. adımı tekrarlayarak yeni .appx oluşuturup, 9. adım ile uygulama denendiğinde, veritabanı doğru çalışıyorsa Windows Store'a yüklemeye başlayabiliriz.


II. Store kısmı 
(Uygulama yükleme sayfası Türkçe, destek vs kısmı genellikle ingilizce çıkıyor. İstenildiğinde sonradan dil ve uygulama adı değiştirilebiliyor)
(Başlamadan önce bir websitesi açmak ve kişilik hakları sayfası oluşturmak gerekiyor. Blogspot'ta ücretsiz yapılabiliyor)
Microsoft hesabı yoksa açmak için : 
https://developer.microsoft.com/en-us/store/register  - Signup (Turkey; Individual 19 USD) ile Windows Store 'a kaydolun. Uygulamam (Kullanıcı adı ..@gmail.com vs olabilir.)
Microsoft Partner Center- Uygulamam (dashboard)- Create new app- 
Name: Uygulamam (Check availability) Reserve product name; Start your submission
Pricing and availability: Markets- Show options- Unselect all; Turkey; OK
Public audience; Make this product available and discoverable in the Microsoft Store; Release: (as soon as possible); Stop acq: never; Base price: (free); Save draft
Properties- Pick a category (Health + fitness); Support info- Yes- https://Uygulamam.blogspot.com/p/kisilikhaklari.html; https://Uygulamam.blogspot.com; ..@gmail.com;  (Keyboard, Mouse : Minimum hardware ve Windows Mixed Reality immersive headset : Recommeded vs sakın işaretlemeyin) Tüm çentikleri kaldırın 

Seller ID...  Windows publisher ID CN=3A...-..-..-..-... bir yere kaydedin. (Windows Phone publisher ID kullanılmıyor) Publisher display name (Company Name) Uygulama Destek (şirket adı)
(Yukarıda I.Delphi bölümünde Local Ad hoc ile oluşturulan sertifikalı appx ne Store'daki Publish kısmında ne de başka windowslarda deneme amaçlı çalışıtırılamaz. W.Store'da yayınlamak için yeni sertiifkalı .appx oluşturmak gerekiyor)
http://www.developer.microsoft.com- Register as an app developer 19 $ k.kartı ile ödemek gerekiyor (şirket hesabı için 99 $ ödemek ve kayıt için şirket emaili ile Publisher name şirket adı girmek gerekiyor. Şirket emaili yoksa şahsi hesap açmak lazım)
(Publish-) Dashboard- Create a new app- (uygulamaadı) Reserve product name, Submission doldurun.
App management- App identity- Package/Identity/Publisher (veya Settings- Account- Account settings) : CN=3A...-..-..-..-...  Seller ID .... Windows publisher ID  kopyalayıp bir yere kaydediniz.
Employment verification- Update
Account approval (hesap açılış onayı) şahsi hesap için bir kaç saatte geliyor. Şirket hesabı en az 1 gün sürüyor. Bazen evrak istiyorlar. 

(Bu safhada muhtemelen istisnai olarak Submission- Packages sayfasında "... not avaliable" yazısı ve Packages içine girince de Correlation ID: ... App server Contact support yazısı çıktı. Submission silip birkaç defa yeniden girildiği halde 1 gün boyunca değişmedi. https://docs.microsoft.com/en-us/answers...s/ask.html sayfasında Tags: windows-uwp kısmında yazınca 5 dakika içinde düzeldi)

Burada tekrar Delphi'ye geçiyoruz:
Project- Build (Win 32 Release)
Project- Options- Provisioning- Build type: Windows 32-bit - Application Store
Distribution type: Store; Package Name: Uygulamam ;  Pack.Disp.Name: Uygulamam;  
Publisher: CN=3A...-..-..-..-... ; Pub.Disp.Name: Uygulamam Destek;   yapıştırın; Save
Project | Options | Deployment | Provisioning is set to Windows 32-bit Application Store
Project- Release; Windows 32-bit - Windows 10 SDK 10.0.10240.0, Application Store seçin.
Project- Build (Run)
Uygulama klasöründe APPX ve içindeki dosyaları winzip/winrar ile tetkik ediniz.

Submission- Pricing : (free; publish date vs  doldurun)
Properties sayfasında tüm çentikleri kaldırın, PC vs seçmeyin.  
Age ratings (tümünü hayır) doğru olarak doldurun.
Submission- Packages- browse your files- ...Win32\Release\(uygulamaadı)\bin\(uygulamaadı); Open; Uploading 
Artık beklemeye geçiyoruz. 24 saat içinde certification approval emaili geliyor. Sonraki 1-3 gün içinde yayınlanması lazım. 

(1 gün sonra yayınlandı mesajı gelmesine rağmen 3 gün boyunca Microsoft Windows Mağaza'daki aramalarda çıkmadı. bildirildi. Yine yukarıdaki ask.html sayfasında sordum fakat yanlış yerde sorduğuma dair cevap  geldi. Bunun üzerine https://support.microsoft.com/ sayfasında ticket oluşturdum. Türkiye seçip, gecikme problemini yazdım fakat pek ümidim yoktu. Sağolsun Mehmet Ali Alkaya bey maille cevap verdi ve 2 gün boyunca çok ilgilendi. Telefonla arayıp durumu öğrenip Microsoft ABD'den destek istedi. Birkaç yazışmadan sonra bu sıralar yurtdışında bulunup Türkiye dışından bağlandığım için farklı ülke IP numaramdan kaynaklanan sebeple aramalarımda çıkmadığını bildirdiler. Proksi ile bağlanınca gerçekten de uygulamanın yayınlanmış ve görünür olduğunu öğrendim. İhtiyaç olursa Mehmet Ali beyin irtibat mailini özelden bildirebilirim. Microsoft'un desteğine zor ulaşılıyor fakat ulaşınca çok ilgileniyorlar ve bir şekilde çözüm buluyorlar.) Bilginize. 

Bkz
Cevapla
#2
bilgilendirme için çok teşekkürler interbase veritabanı kullandığım bir program yükleme çalıştım, veritabanı bir şekilde taşıdım ama interbase veritalabı program çalıştığı yerde çalıştığı için başarı olamamadım.
Cevapla
#3
(25-07-2020, Saat: 22:09)nguzeller Adlı Kullanıcıdan Alıntı: bilgilendirme için çok teşekkürler interbase veritabanı kullandığım bir program yükleme çalıştım, veritabanı bir şekilde taşıdım ama interbase veritalabı program çalıştığı yerde çalıştığı için başarı olamamadım.

Yukarıda anlatılan şekilde sadece kodları biraz değiştirince interbase çalışıyor. İhtiyaç olursa projeyi yükleyebilirim. 
procedure TDataModule2.DataModuleCreate(Sender: TObject);  //System.IOUtils, WinApi.Windows
var yol,dosya : string;  label vtAc;
begin
  yol:=TPath.GetHomePath()+'\Deneme\';
  dosya:=yol+'Veritabani.IB';
form1.Caption:='başla';
  if(FileExists(dosya))then
    goto vtAc;
  if not DirectoryExists('yol') then
    CreateDir(yol);
form1.Caption:='yok ' + ParamStr(0)+'BosVeritabani.IB';
  CopyFile(PChar(ExtractFilePath(ParamStr(0))+'BosVeritabani.IB'),PChar(dosya),true);
  RenameFile(yol+'BosVeritabani.IB',dosya);
  if(not FileExists(dosya))then begin
    System.SysUtils.Beep;
  end;
  exit; //Application.Terminate;

vtAc:

  with IBDatabase1 do begin
    Close;
    DatabaseName := dosya;
    try
      Connected := true;
    except
      Form1.caption:='Veritabanı açılamadı!';
      exit;
    end;
  end;
end;
Cevapla
#4
daha öncede bu yöntemi ile taşıma işlemi yapmıştım, çalıştığı pc de oluyordu ama onay aşamasında hata veriyordu. ama siz bu yöntem ile bir sonuç aldı iseniz tekrar denesem iyi olur. çok teşekkür ediyorum.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Photo Database'e Resim Yükleme (Base64toİmage) hakanharbeli 10 4.349 24-03-2020, Saat: 11:41
Son Yorum: itsmylife38
  AnonymousThread ile ListView'e Veri Yükleme witalihakko 5 3.075 17-11-2019, Saat: 09:21
Son Yorum: delphi-x
  Resim Yükleme SimaWB 15 5.472 16-11-2019, Saat: 08:25
Son Yorum: Bay_Y
  Windows registry çoklu dize (multi string) değeri okuma ve yazma sabanakman 0 797 21-11-2018, Saat: 13:27
Son Yorum: sabanakman
  Multi Platform - Uygulama İzin Kontrolü Fesih ARSLAN 18 6.079 23-10-2018, Saat: 08:35
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi