簡體   English   中英

如何驗證我的應用程序是否支持iOS 4.3

[英]How can I verify whether my app supports iOS 4.3 or not

我使用sdk 6.1編譯了我的應用程序,並將部署目標設置為iOS 4.3。 這是否意味着我的應用程序可以在4.3上運行? 我沒有這樣的設備,實際上無法測試它,但我想知道該應用程序是否適用於4.3。

將部署目標設置為iOS 4.3可確保您的應用程序支持iOS 4.3及更高版本除非您不使用僅支持更高版本(如ARC,Storyboard,autolayout)的任何功能 最好在設備或模擬器上進行測試。 您可以通過Xcode下載iOS4.3模擬器

Xcode-> preferances - > downloads - > iOS 4.3模擬器

如果您覺得您使用的類可能在其他ios版本中不可用,那么您可以使用相同的方法檢查

使用NSClassFromString函數。 將類的名稱作為字符串傳遞給此方法。

如果此函數的返回值為nil,則該類在運行您的應用程序的設備上不可用;

否則,該類可在設備上使用,您可以繼續使用它,如您所願。

這是一個例子:

i am checking for NSJSONSerialization class, similarly you can check for your class also,

if (NSClassFromString(@"NSJSONSerialization") != nil) {
 /* You can use this class */

     [NSJSONSerialization JSONObjectWithData:... /* Put data here */
                      options:...           /* Put options here */ 
                       error:...];        /* Handle errors here */
} else {
     /* That class is not available */
}

您可以在iOS版本大於或等於您設置的部署目標的任何設備上運行。

因此請記住,您沒有使用該版本不支持的任何框架或功能。

希望它能幫到你。

您可以隨時在4.3模擬器上測試您的應用程序。 在“Scheme”菜單下選擇iPhone 4.3 Simulator (你可以在Xcode頂部的“Run”“Stop”按鈕的右側找到它)。 如果您無法找到4.3模擬器的選項,那么您需要通過轉到Xcode->Preference->Downloads->Components->iOS 4.3 Simulator下載它

有時xcode不會抱怨6.1中可用的新功能(如autolayout等)的使用,但會在4.3上運行時使應用程序崩潰。

以這種方式測試是一個非常好的解決方案,但它不是100%保證

/**
 * Example usage:
 *   If you want to see if you're using methods that are only defined in iOS 4.0 and lower 
 *   then you would use the following. Replace the __IPHONE_4_0 with whatever other macro 
 *   you require. See Availability.h for iOS versions these relate to.
 * 
 * YourProjectPrefixHeader.pch:
 *   #define __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED __IPHONE_4_0
 *   #import "ThisFile.h"
 *   
 *   // The rest of your prefix header as normal
 *   #import <UIKit/UIKit.h>
 */

#import <Availability.h>

#define __AVAILABILITY_TOO_NEW __attribute__((deprecated("TOO NEW!")))

#ifndef __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED
#define __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED __IPHONE_OS_VERSION_MIN_REQUIRED
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_OS_VERSION_MIN_REQUIRED
#error You cannot ask for a soft max version which is less than the deployment target
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_2_0
#undef __AVAILABILITY_INTERNAL__IPHONE_2_0
#define __AVAILABILITY_INTERNAL__IPHONE_2_0 __AVAILABILITY_TOO_NEW
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_2_1
#undef __AVAILABILITY_INTERNAL__IPHONE_2_1
#define __AVAILABILITY_INTERNAL__IPHONE_2_1 __AVAILABILITY_TOO_NEW
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_2_2
#undef __AVAILABILITY_INTERNAL__IPHONE_2_2
#define __AVAILABILITY_INTERNAL__IPHONE_2_2 __AVAILABILITY_TOO_NEW
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_3_0
#undef __AVAILABILITY_INTERNAL__IPHONE_3_0
#define __AVAILABILITY_INTERNAL__IPHONE_3_0 __AVAILABILITY_TOO_NEW
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_3_1
#undef __AVAILABILITY_INTERNAL__IPHONE_3_1
#define __AVAILABILITY_INTERNAL__IPHONE_3_1 __AVAILABILITY_TOO_NEW
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_3_2
#undef __AVAILABILITY_INTERNAL__IPHONE_3_2
#define __AVAILABILITY_INTERNAL__IPHONE_3_2 __AVAILABILITY_TOO_NEW
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_4_0
#undef __AVAILABILITY_INTERNAL__IPHONE_4_0
#define __AVAILABILITY_INTERNAL__IPHONE_4_0 __AVAILABILITY_TOO_NEW
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_4_1
#undef __AVAILABILITY_INTERNAL__IPHONE_4_1
#define __AVAILABILITY_INTERNAL__IPHONE_4_1 __AVAILABILITY_TOO_NEW
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_4_2
#undef __AVAILABILITY_INTERNAL__IPHONE_4_2
#define __AVAILABILITY_INTERNAL__IPHONE_4_2 __AVAILABILITY_TOO_NEW
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_4_3
#undef __AVAILABILITY_INTERNAL__IPHONE_4_3
#define __AVAILABILITY_INTERNAL__IPHONE_4_3 __AVAILABILITY_TOO_NEW
#endif

#if __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED < __IPHONE_5_0
#undef __AVAILABILITY_INTERNAL__IPHONE_5_0
#define __AVAILABILITY_INTERNAL__IPHONE_5_0 __AVAILABILITY_TOO_NEW
#endif

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM