كيفية ربط التطبيقات في متجر التطبيقات
-
10-07-2019 - |
سؤال
أقوم بإنشاء نسخة مجانية من لعبة iPhone الخاصة بي.أريد الحصول على زر داخل الإصدار المجاني ينقل الأشخاص إلى الإصدار المدفوع في متجر التطبيقات.إذا كنت أستخدم رابطًا قياسيًا
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8
يفتح iPhone Safari أولاً، ثم متجر التطبيقات.لقد استخدمت تطبيقات أخرى تفتح متجر التطبيقات مباشرةً، لذا أعلم أن ذلك ممكن.
أيه أفكار؟ما هو مخطط URL لمتجر التطبيقات؟
المحلول
تم تحريره بتاريخ 2016-02-02
بدءًا من iOS 6 SKStoreProductViewController تم تقديم الفصل.يمكنك ربط تطبيق دون مغادرة تطبيقك.مقتطف الكود في سويفت 3.x/2.x و ج موضوعية يكون هنا.
أ SKStoreProductViewController يعرض الكائن متجرًا يسمح للمستخدم بشراء وسائط أخرى من متجر التطبيقات.على سبيل المثال ، قد يعرض تطبيقك المتجر للسماح للمستخدم بشراء تطبيق آخر.
دفع العملاء مباشرة إلى تطبيقك على متجر التطبيقات مع روابط iTunes مع روابط iTunes ، يمكنك تزويد عملائك بطريقة سهلة للوصول إلى تطبيقاتك على متجر التطبيقات مباشرة من موقع الويب الخاص بك أو حملات التسويق.يعد إنشاء رابط iTunes بسيطًا ويمكن صنعه لتوجيه العملاء إما إلى تطبيق واحد أو جميع تطبيقاتك أو تطبيق معين مع تحديد اسم شركتك.
لإرسال العملاء إلى تطبيق معين: http://itunes.com/apps/appname
لإرسال العملاء إلى قائمة التطبيقات التي لديك في متجر التطبيقات: http://itunes.com/apps/developername
لإرسال العملاء إلى تطبيق معين مع اسم شركتك المدرجة في عنوان URL: http://itunes.com/apps/developername/appname
ملاحظات إضافية:
يمكنك استبدال http://
مع itms://
أو itms-apps://
لتجنب عمليات إعادة التوجيه.
للحصول على معلومات حول التسمية، راجع Apple QA1633:
https://developer.apple.com/library/content/qa/qa1633/_index.html.
تحرير (اعتبارًا من يناير 2015):
يجب تحديث روابط itunes.com/apps إلى appstore.com/apps.انظر QA1633 أعلاه، والذي تم تحديثه.جديد QA1629 يقترح هذه الخطوات والكود لبدء تشغيل المتجر من أحد التطبيقات:
- قم بتشغيل iTunes على جهاز الكمبيوتر الخاص بك.
- ابحث عن العنصر الذي تريد الارتباط به.
- انقر بزر الماوس الأيمن أو انقر مع الضغط على مفتاح التحكم على اسم العنصر في iTunes، ثم اختر "نسخ عنوان URL لمتجر iTunes" من القائمة المنبثقة.
- في التطبيق الخاص بك، قم بإنشاء
NSURL
الكائن باستخدام عنوان URL المنسوخ لـ iTunes، ثم قم بتمرير هذا الكائن إليهUIApplication
' سopenURL
:طريقة لفتح العنصر الخاص بك في متجر التطبيقات.
عينة من الرموز:
NSString *iTunesLink = @"itms://itunes.apple.com/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
سويفت 4.2
let urlStr = "itms-apps://itunes.apple.com/app/apple-store/id375380948?mt=8"
if #available(iOS 10.0, *) {
UIApplication.shared.open(URL(string: urlStr)!, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(URL(string: urlStr)!)
}
نصائح أخرى
إذا كنت تريد فتح التطبيق مباشرة إلى المتجر، يجب عليك استخدام:
وitms ل-التطبيقات: // ...
وهذه الطريقة أنها ستفتح مباشرة التطبيق المتجر في الجهاز، بدلا من الذهاب الى اي تيونز أولا، ثم فتح فقط المتجر (عند استخدام itms للتو: //)
وعلى أمل أن يساعد.
وتحرير: أبريل، 2017. itms ل-التطبيقات: // في الواقع يعمل من جديد في iOS10. اختبرته.
وتحرير: أبريل، 2013. هذا لم يعد يعمل في iOS5 والإصدارات أعلاه. مجرد استخدام
https://itunes.apple.com/app/id378458261
وليس هناك المزيد من الموجهات.
بدءًا من iOS 6، الطريقة الصحيحة للقيام بذلك هي باستخدام SKStoreProductViewController فصل.
سويفت 3.x:
func openStoreProductWithiTunesItemIdentifier(identifier: String) {
let storeViewController = SKStoreProductViewController()
storeViewController.delegate = self
let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
storeViewController.loadProduct(withParameters: parameters) { [weak self] (loaded, error) -> Void in
if loaded {
// Parent class of self is UIViewContorller
self?.present(storeViewController, animated: true, completion: nil)
}
}
}
func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
viewController.dismiss(animated: true, completion: nil)
}
// Usage:
openStoreProductWithiTunesItemIdentifier(identifier: "13432")
يمكنك الحصول على معرف عنصر iTunes الخاص بالتطبيق مثل هذا:(بدلا من واحدة ثابتة)
سويفت 3.2
var appID: String = infoDictionary["CFBundleIdentifier"]
var url = URL(string: "http://itunes.apple.com/lookup?bundleId=\(appID)")
var data = Data(contentsOf: url!)
var lookup = try? JSONSerialization.jsonObject(with: data!, options: []) as? [AnyHashable: Any]
var appITunesItemIdentifier = lookup["results"][0]["trackId"] as? String
openStoreProductViewController(withITunesItemIdentifier: Int(appITunesItemIdentifier!) ?? 0)
سويفت 2.x:
func openStoreProductWithiTunesItemIdentifier(identifier: String) {
let storeViewController = SKStoreProductViewController()
storeViewController.delegate = self
let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
storeViewController.loadProductWithParameters(parameters) { [weak self] (loaded, error) -> Void in
if loaded {
// Parent class of self is UIViewContorller
self?.presentViewController(storeViewController, animated: true, completion: nil)
}
}
}
func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
viewController.dismissViewControllerAnimated(true, completion: nil)
}
// Usage
openStoreProductWithiTunesItemIdentifier("2321354")
ج موضوعية:
static NSInteger const kAppITunesItemIdentifier = 324684580;
[self openStoreProductViewControllerWithITunesItemIdentifier:kAppITunesItemIdentifier];
- (void)openStoreProductViewControllerWithITunesItemIdentifier:(NSInteger)iTunesItemIdentifier {
SKStoreProductViewController *storeViewController = [[SKStoreProductViewController alloc] init];
storeViewController.delegate = self;
NSNumber *identifier = [NSNumber numberWithInteger:iTunesItemIdentifier];
NSDictionary *parameters = @{ SKStoreProductParameterITunesItemIdentifier:identifier };
UIViewController *viewController = self.window.rootViewController;
[storeViewController loadProductWithParameters:parameters
completionBlock:^(BOOL result, NSError *error) {
if (result)
[viewController presentViewController:storeViewController
animated:YES
completion:nil];
else NSLog(@"SKStoreProductViewController: %@", error);
}];
[storeViewController release];
}
#pragma mark - SKStoreProductViewControllerDelegate
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[viewController dismissViewControllerAnimated:YES completion:nil];
}
يمكنك الحصول
kAppITunesItemIdentifier
(معرف عنصر iTunes الخاص بالتطبيق) مثل هذا:(بدلا من واحدة ثابتة)
NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];
NSString* appID = infoDictionary[@"CFBundleIdentifier"];
NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?bundleId=%@", appID]];
NSData* data = [NSData dataWithContentsOfURL:url];
NSDictionary* lookup = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSString * appITunesItemIdentifier = lookup[@"results"][0][@"trackId"];
[self openStoreProductViewControllerWithITunesItemIdentifier:[appITunesItemIdentifier intValue]];
لصيف 2015 وما بعده...
-(IBAction)clickedUpdate
{
NSString *simple = @"itms-apps://itunes.apple.com/app/id1234567890";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:simple]];
}
استبدل "id1234567890" بـ "id" و"رقمك المكون من عشرة أرقام"
هذا يعمل بشكل مثالي على جميع الاجهزة.
إنه يذهب مباشرة ل متجر التطبيقات، لا توجد عمليات إعادة توجيه.
على ما يرام للجميع المتاجر الوطنية.
هذا صحيح يجب عليك الانتقال إلى استخدام
loadProductWithParameters
, لكن إذا كان الغرض من الرابط هو تحديث التطبيق الذي أنت فيه بالفعل:ربما يكون من الأفضل استخدام هذا النهج "القديم".
وأبل فقط أعلن appstore.com عناوين المواقع.
https://developer.apple.com/library/ios/ سؤال وجواب / qa1633 / _index.html
<اقتباس فقرة>وهناك ثلاثة أنواع من المتجر اختصار الروابط، في شكلين، واحد للدائرة الرقابة الداخلية التطبيقات، وآخر للتطبيقات ماك:
اسم الشركة
ودائرة الرقابة الداخلية: http://appstore.com/ للحصول على سبيل المثال، <وأ href = "HTTP: // أبستور كوم / تفاحة "يختلط =" noreferrer "> http://appstore.com/apple
وماك: http://appstore.com/mac/ للحصول على سبيل المثال، <أ href = على "HTTP : //appstore.com/mac/apple "يختلط =" noreferrer "> http://appstore.com/mac/apple
التطبيقات اسم
ودائرة الرقابة الداخلية: http://appstore.com/ للحصول على سبيل المثال، <وأ href = "HTTP: // أبستور كوم / الرئيسي "يختلط =" noreferrer "> http://appstore.com/keynote
وماك: http://appstore.com/mac/ للحصول على سبيل المثال، <أ href = على "HTTP : //appstore.com/mac/keynote "يختلط =" noreferrer "> http://appstore.com/mac/keynote
التطبيقات قبل شركة
ودائرة الرقابة الداخلية: http://appstore.com/ / على سبيل المثال، <وأ href = "HTTP: // appstore.com/apple/keynote "يختلط =" noreferrer "> http://appstore.com/apple/keynote
وماك: http://appstore.com/mac/ / على سبيل المثال، <وأ href = " http://appstore.com/mac/apple/keynote "يختلط =" noreferrer "> http://appstore.com/mac/apple/keynote
ومعظم الشركات والتطبيقات لديها الكنسي المتجر رابط قصير. يتم إنشاء هذا URL الكنسي من خلال تغيير أو إزالة الأحرف معينة (وكثير منها غير قانونية أو لها معنى خاص في URL (على سبيل المثال، "&")).
لإنشاء المتجر قصيرة لينك، وتطبيق القواعد التالية لشركتك أو اسم التطبيق:
وإزالة كافة المسافات
وتحويل كافة الأحرف إلى انخفاض حدة
وإزالة جميع حقوق الطبع والنشر (©)، العلامة التجارية (™) وعلامة مسجلة) ® (حرف
واستبدال الوات ( "&") مع "و"
وإزالة معظم علامات الترقيم (انظر قائمة 2 للمجموعة)
واستبدال معلمة وغيرها من "زينت" أحرف (ü، å، الخ) ذات طابع عنصري من (ش، لذلك، وما إلى ذلك).
وترك كل الشخصيات الأخرى كما هو.
وقائمة 2 علامات الترقيم الأحرف التي يجب إزالتها.
!و¡ "# $٪ '() * +، - / :؛ <=> ¿@ [] ^ _`.؟ {|} ~
وفيما يلي بعض الأمثلة للتدليل على التحويل التي تأخذ مكان.
المتجر
أمثلةاسم الشركة
وجيم لوفت => http://appstore.com/gameloft
وأكتيفيسون النشر، وشركة => http://appstore.com/activisionpublishinginc
وتشن التصوير الفوتوغرافي والبرامج => http://appstore.com/chensphotographyandsoftware
التطبيقات أمثلة اسم
والأكرينا => http://appstore.com/ocarina
وأين بلادي بيري؟ => http://appstore.com/wheresmyperry
والدماغ تحدي ™ => http://appstore.com/brainchallenge
اقتباس فقرة>وهذا الرمز يولد رابط المتجر على دائرة الرقابة الداخلية
NSString *appName = [NSString stringWithString:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]];
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-apps://itunes.com/app/%@",[appName stringByReplacingOccurrencesOfString:@" " withString:@""]]];
واستبدال itms ل-التطبيقات ب http على نظام التشغيل Mac:
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"http:/itunes.com/app/%@",[appName stringByReplacingOccurrencesOfString:@" " withString:@""]]];
وURL فتح في دائرة الرقابة الداخلية:
[[UIApplication sharedApplication] openURL:appStoreURL];
وماك:
[[NSWorkspace sharedWorkspace] openURL:appStoreURL];
وببساطة تغيير "اي تيونز" إلى "فوبوس" في الارتباط التطبيق.
http://phobos.apple.com/ أجسام الويب / MZStore.woa / وا / viewSoftware؟ ID = 300136119 & طن متري = 8
والآن فإنه سيتم فتح المتجر مباشرة
للحصول على رابط مباشر بدون إعادة توجيه:
- استخدم صانع رابط iTunes http://itunes.apple.com/linkmaker/ للحصول على الرابط الحقيقي المباشر
- استبدل
http://
معitms-apps://
- افتح الرابط مع
[[UIApplication sharedApplication] openURL:url];
كن حذرًا، فهذه الروابط تعمل فقط على الأجهزة الفعلية، وليس على أجهزة المحاكاة.
مصدر : https://developer.apple.com/library/ios/#qa/qa2008/qa1629.html
لقد نجح هذا الأمر بشكل مثالي باستخدام معرف التطبيق فقط:
NSString *urlString = [NSString stringWithFormat:@"http://itunes.apple.com/app/id%@",YOUR_APP_ID];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
عدد عمليات إعادة التوجيه هو صفر.
يقترح عدد من الإجابات استخدام "itms" أو "itms-apps" ولكن لا توصي شركة Apple بهذه الممارسة على وجه التحديد.إنهم يقدمون فقط الطريقة التالية لفتح متجر التطبيقات:
القائمة 1 إطلاق متجر التطبيقات من تطبيق iOS
NSString *iTunesLink = @"https://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
يرى https://developer.apple.com/library/ios/qa/qa1629/_index.html آخر تحديث في مارس 2014 اعتبارًا من هذه الإجابة.
بالنسبة للتطبيقات التي تدعم نظام التشغيل iOS 6 والإصدارات الأحدث، توفر Apple آلية داخل التطبيق لعرض متجر التطبيقات: SKStoreProductViewController
- (void)loadProductWithParameters:(NSDictionary *)parameters completionBlock:(void (^)(BOOL result, NSError *error))block;
// Example:
SKStoreProductViewController* spvc = [[SKStoreProductViewController alloc] init];
spvc.delegate = self;
[spvc loadProductWithParameters:@{ SKStoreProductParameterITunesItemIdentifier : @(364709193) } completionBlock:^(BOOL result, NSError *error){
if (error)
// Show sorry
else
// Present spvc
}];
لاحظ أنه في نظام التشغيل iOS6، قد لا يتم استدعاء كتلة الإكمال في حالة وجود أخطاء.يبدو أن هذا خطأ تم حله في نظام التشغيل iOS 7.
إذا كنت تريد أن تصل إلى تطبيقات مطور واسم المطور لديها علامات الترقيم أو مسافات (على سبيل المثال شركة تطوير، LLC) تشكيل URL الخاصة بك مثل هذا:
itms-apps://itunes.com/apps/DevelopmentCompanyLLC
وإلا فإنها ترجع "هذا الطلب لا يمكن معالجة" على دائرة الرقابة الداخلية 4.3.3
ويمكنك الحصول على وصلة لعنصر معين في المتجر اي تيونز أو عن طريق صانع الرابط التالي: http://itunes.apple.com/linkmaker/
وهذا هو العمل وربط مباشرة في نظام التشغيل iOS5
NSString *iTunesLink = @"http://itunes.apple.com/app/baseball-stats-tracker-touch/id490256272?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
وهذه هي طريقة بسيطة وقصيرة لإعادة توجيه / وصلة أخرى التطبيقات الموجودة في متجر التطبيقات.
NSString *customURL = @"http://itunes.apple.com/app/id951386316";
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:customURL]])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
}
بالنسبة إلى Xcode 9.1 وSwift 4:
- استيراد StoreKit:
import StoreKit
2. مطابقة البروتوكول
SKStoreProductViewControllerDelegate
3. تنفيذ البروتوكول
func openStoreProductWithiTunesItemIdentifier(identifier: String) {
let storeViewController = SKStoreProductViewController()
storeViewController.delegate = self
let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
storeViewController.loadProduct(withParameters: parameters) { [weak self] (loaded, error) -> Void in
if loaded {
// Parent class of self is UIViewContorller
self?.present(storeViewController, animated: true, completion: nil)
}
}
}
3.1
func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
viewController.dismiss(animated: true, completion: nil)
}
- كيف تستعمل:
openStoreProductWithiTunesItemIdentifier(identifier: "here_put_your_App_id")
ملحوظة:
من المهم جدًا إدخال المعرف الدقيق لتطبيقك.لأن هذا يسبب خطأ (لا يظهر سجل الأخطاء، ولكن لا شيء يعمل بشكل جيد بسبب هذا)
وأستطيع أن أؤكد أنه إذا قمت بإنشاء التطبيق في اي تيونز يوصلك الحصول على هوية التطبيق الخاص بك قبل تقديمه.
لذلك ..
itms-apps://itunes.apple.com/app/id123456789
NSURL *appStoreURL = [NSURL URLWithString:@"itms-apps://itunes.apple.com/app/id123456789"];
if ([[UIApplication sharedApplication]canOpenURL:appStoreURL])
[[UIApplication sharedApplication]openURL:appStoreURL];
ويعمل علاج
قد يصبح إنشاء رابط مشكلة معقدة عند دعم أنظمة تشغيل متعددة وأنظمة أساسية متعددة.على سبيل المثال، WebObjects غير مدعوم على نظام التشغيل iOS 7 (بعضها)، بعض الروابط التي تنشئها ستفتح متجرًا في بلد آخر ثم متجر المستخدم وما إلى ذلك.
هناك مكتبة مفتوحة المصدر تسمى ط ربط يمكن أن تساعدك.
هناك مزايا لهذه المكتبة هي ذلك سيتم العثور على الروابط وإنشائها في وقت التشغيل (ستتحقق المكتبة من معرف التطبيق ونظام التشغيل الذي تعمل عليه وستكتشف الرابط الذي يجب إنشاؤه).أفضل نقطة في هذا هو أنك لا تحتاج إلى تكوين أي شيء تقريبًا قبل استخدامه بحيث يكون خاليًا من الأخطاء وسيعمل دائمًا.يعد هذا أمرًا رائعًا أيضًا إذا كان لديك عدد قليل من الأهداف في نفس المشروع حتى لا تضطر إلى تذكر معرف التطبيق أو الرابط الذي تريد استخدامه.ستطالب هذه المكتبة أيضًا المستخدم بترقية التطبيق إذا كان هناك إصدار جديد في المتجر (هذا مضمن ويمكنك إيقاف تشغيله بعلامة بسيطة) مع الإشارة مباشرةً إلى صفحة ترقية التطبيق إذا وافق المستخدم.
انسخ ملفي المكتبة إلى مشروعك (iLink.h & iLink.m).
على appDelegate.m الخاص بك:
#import "iLink.h"
+ (void)initialize
{
//configure iLink
[iLink sharedInstance].globalPromptForUpdate = YES; // If you want iLink to prompt user to update when the app is old.
}
وفي المكان الذي تريد فتح صفحة التقييم على سبيل المثال فقط استخدم:
[[iLink sharedInstance] iLinkOpenAppPageInAppStoreWithAppleID: YOUR_PAID_APP_APPLE_ID]; // You should find YOUR_PAID_APP_APPLE_ID from iTunes Connect
لا تنس استيراد iLink.h على نفس الملف.
يوجد مستند جيد جدًا للمكتبة بأكملها هناك ومشروعات نموذجية لأجهزة iPhone وMac.
على الأقل iOS 9 وما فوق
- افتح مباشرة في متجر التطبيقات
تطبيق
itms-apps://itunes.apple.com/app/[appName]/[appID]
قائمة تطبيقات المطورين
itms-apps://itunes.apple.com/developer/[developerName]/[developerID]
ووفقا ل أبل أحدث وثيقة تحتاج إلى استخدام
appStoreLink = "https://itunes.apple.com/us/app/apple-store/id375380948?mt=8"
أو
SKStoreProductViewController
إذا كان لديك معرف المتجر أنك أفضل من استخدامه. خاصة إذا كنت في المستقبل قد تغيير اسم التطبيق.
http://itunes.apple.com/app/id378458261
إذا لم يكن لديك ثا المتجر معرف يمكنك إنشاء رابط استنادا إلى هذه الوثائق <لأ href = "https://developer.apple.com/library/ios/qa/qa1633/_index.html" يختلط = "نوفولو"> https://developer.apple.com/library/ios/qa/qa1633/_index.html
+ (NSURL *)appStoreURL
{
static NSURL *appStoreURL;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
appStoreURL = [self appStoreURLFromBundleName:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"]];
});
return appStoreURL;
}
+ (NSURL *)appStoreURLFromBundleName:(NSString *)bundleName
{
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-apps://itunes.com/app/%@", [self sanitizeAppStoreResourceSpecifier:bundleName]]];
return appStoreURL;
}
+ (NSString *)sanitizeAppStoreResourceSpecifier:(NSString *)resourceSpecifier
{
/*
https://developer.apple.com/library/ios/qa/qa1633/_index.html
To create an App Store Short Link, apply the following rules to your company or app name:
Remove all whitespace
Convert all characters to lower-case
Remove all copyright (©), trademark (™) and registered mark (®) symbols
Replace ampersands ("&") with "and"
Remove most punctuation (See Listing 2 for the set)
Replace accented and other "decorated" characters (ü, å, etc.) with their elemental character (u, a, etc.)
Leave all other characters as-is.
*/
resourceSpecifier = [resourceSpecifier stringByReplacingOccurrencesOfString:@"&" withString:@"and"];
resourceSpecifier = [[NSString alloc] initWithData:[resourceSpecifier dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES] encoding:NSASCIIStringEncoding];
resourceSpecifier = [resourceSpecifier stringByReplacingOccurrencesOfString:@"[!¡\"#$%'()*+,-./:;<=>¿?@\\[\\]\\^_`{|}~\\s\\t\\n]" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, resourceSpecifier.length)];
resourceSpecifier = [resourceSpecifier lowercaseString];
return resourceSpecifier;
}
ويمر هذا الاختبار
- (void)testAppStoreURLFromBundleName
{
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Nuclear™"].absoluteString, @"itms-apps://itunes.com/app/nuclear", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Magazine+"].absoluteString, @"itms-apps://itunes.com/app/magazine", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Karl & CO"].absoluteString, @"itms-apps://itunes.com/app/karlandco", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"[Fluppy fuck]"].absoluteString, @"itms-apps://itunes.com/app/fluppyfuck", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Pollos Hérmanos"].absoluteString, @"itms-apps://itunes.com/app/polloshermanos", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Niños and niñas"].absoluteString, @"itms-apps://itunes.com/app/ninosandninas", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Trond, MobizMag"].absoluteString, @"itms-apps://itunes.com/app/trondmobizmag", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"!__SPECIAL-PLIZES__!"].absoluteString, @"itms-apps://itunes.com/app/specialplizes", nil);
}
وعلى الرغم من أن يكون هناك الكثير من الإجابات هنا، فإن أيا من الاقتراحات لربط تطبيقات المطورين يبدو للعمل بعد الآن.
عند آخر زرت كنت قادرا على الحصول على عمل باستخدام الشكل:
itms-apps://itunes.apple.com/developer/developer-name/id123456789
وهذا لم يعد يعمل، ولكن إزالة اسم المطور يفعل:
itms-apps://itunes.apple.com/developer/id123456789
جرب هذه الطريقة
http://itunes.apple.com/lookup?id="معرف التطبيق الخاص بك هنا" قم بإرجاع json.من هذا، ابحث عن المفتاح "com.trackViewUrl"والقيمة هي عنوان URL المطلوب.استخدم عنوان url هذا (فقط استبدل https://
مع itms-apps://
).وهذا يعمل بشكل جيد.
على سبيل المثال، إذا كان معرف التطبيق الخاص بك هو xyz، فانتقل إلى هذا الرابطhttp://itunes.apple.com/lookup?id=xyz
ثم ابحث عن عنوان URL للمفتاح "com.trackViewUrl".هذا هو عنوان url لتطبيقك في متجر التطبيقات، ولاستخدام عنوان url هذا في xcode، جرب هذا
NSString *iTunesLink = @"itms-apps://itunes.apple.com/us/app/Your app name/id Your app ID?mt=8&uo=4";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
شكرًا