2011-05-13 22 views
5

Merhaba Bir inapp satın alma iphone uygulaması oluşturuyorum. Uygulamam model oluşturdu. 6 ürün içeren bir masa görüşüne sahiptir. Ücretsiz uygulamada 3 ürün bulunmaktadır ve 3 maddeyi kilitlemek istiyorum. İnsanlar, üç öğenin kilidini yalnızca 0,99 ABD doları değerinde tek bir işlem yaparak açabilirler.App Satın Alma-Açma Özelliklerinde

Uygulamamda bayrak içeren bir plist dosyası oluşturmak istiyorum. Eğer flag = 0 ise, birkaç özelliği kilitleyiniz ve eğer flag = 1 ise herşeyin kilidini açınız. Benim plistim, 0 veya 1 olabilen yalnızca bir "bayrak" içerecektir.

Bir plist dosyası nasıl oluşturulacağını bilmiyorum. Müşterilerin erişememesi için bir plist dosyasını nerede tutmalıyım? Kaynak klasöründe tutmalı mıyım?

SKTransactionStatePurchased uygulamasından sonra, .plist dosyasındaki bayrağı değiştirmek istiyorum. Flag.plist dosyasında 0'dan 1'e bayrak değerini değiştirecek olan kodu bana verebilir misiniz?

Teşekkürler.

cevap

2

Sana nedenlerle bir çift için, sorunu çözmek için başka bir yaklaşım bakmak gerekir inanıyoruz:

  • Plists iç iOS dosya sistemine erişimi olan kişiler tarafından düzenlenebilir: Bu Jailbreakers içerir ve bazı vardır Joker olmayanlara da erişmesine izin veren araçlar.
  • Kod ile bir plist'i düzenlemek izinler gerektirir. Uygulamanızın yalnızca Dokümanlar klasöründe düzenleme izinleri var. Birisi, kolayca kolayca değerini düzenlemek için uygulamanızın doküman klasörüne erişmek için bir jailbreak uygulaması yapabilir.

Sorunuzu doğrudan yanıtlamadığım için özür dilerim, ancak uygulamanın kullandığı dokümanlarda bu tür şeyleri depolamak gerçekten kötü bir fikirdir. Bunu yapmak için alternatif yöntemler aramanızı öneririm (kendi sunucunuzu kullanmak gibi). Sadece

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setInteger:1 forKey:@"yourKey"]; 
[defaults synchronize]; 

yourKey kendi seçtiğiniz herhangi bir şey olabilir diyoruz, SKTransactionStatePurchased sonra

:

+0

Eh, ben bir şirket değilim, bir sunucum veya bir web sitem yok. Onlar için de ödeme yapmak istemiyorum. Uygulama satın alma uygulamalarında oluştururken diğer birkaç bireysel kişi olduğunu biliyorum. Plist yöntemi kullanmıyorlarsa hangi yöntem kullanılıyor? Bunu yapmanın ortak bir yaklaşımı nedir? – chits12345

+0

Ben bir uygulama içi satın alma işlemi yaptım, ama birkaç şey biliyorum; insanlar kendi sunucularını kullanırlar ve bazen evet, uygulamanın kendisinde "kilit açma" yaparlar. Yine de son yöntemden tam olarak emin değilim, çünkü tasarlanabilecek her şey tersine mühendislikle çalışabilir. Ben olsaydım NSUserDefaults kullanarak bakmak istiyorum, ama her zaman bir tür açıklama kullanarak. –

+0

(void) provideContent: (NSString *) productId { halinde ([productId'den isEqualToString: kInAppPurchaseProUpgradeProductId]) { [[NSUserDefaults standardUserDefaults] setBool VAR forKey: "isProUpgradePurchased" @]; [[NSUserDefaults standardUserDefaults] senkronize]; } } Bu kodu kullanırsanız, ben erişilebilir ve satın alma işlemi kullanıcı tarafından veya Jailbreakers tarafından değiştirilemez NSUserDefaults bir bayrak "IsProUpgradePurchased" kuruyorum anlamına gelmez. NSUserDefaults uygulamak için bir sunucuya ihtiyacım var mı? – chits12345

2

aslında soruya cevap vermek için. Muhtemelen en iyi bunun için hackerlar, uygulama satın alma ile ilgili olduğunu biliyoruz ki hackerlar bilmeyecek anlamsız ve rastgele bir kelime kullanmaktır.

İlgili konular