欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ios開(kāi)發(fā)注意,ios注意事項(xiàng)

iOS藍(lán)牙開(kāi)發(fā)相關(guān)知識(shí)點(diǎn)和注意事項(xiàng)

總結(jié)一下藍(lán)牙開(kāi)發(fā)相關(guān)的知識(shí)點(diǎn)和注意事項(xiàng),做個(gè)筆記,也希望你們能少踩坑

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)成都企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:iso認(rèn)證等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致贊揚(yáng)!

(公司部分藍(lán)牙項(xiàng)目為混編項(xiàng)目,藍(lán)牙相關(guān)處理均采用了Objective-C,故本文????均采用OC,Swift處理相同)

藍(lán)牙4.0包含兩個(gè)藍(lán)牙標(biāo)準(zhǔn),它是一個(gè)是 雙模 的標(biāo)準(zhǔn),它包含 傳統(tǒng)藍(lán)牙部分(也稱經(jīng)典藍(lán)牙) 和 低功耗藍(lán)牙部分(BLE) , 二者適用于不同的應(yīng)用場(chǎng)景和應(yīng)用條件。他們的特點(diǎn)如下

所以藍(lán)牙4.0是集成了傳統(tǒng)藍(lán)牙和低功耗藍(lán)牙兩個(gè)標(biāo)準(zhǔn)的,并不只是低功耗藍(lán)牙

藍(lán)牙4.0支持兩種部署方式: 雙模式 和 單模式 ,雙模同時(shí)支持經(jīng)典藍(lán)牙和低功耗藍(lán)牙,而單模則只支持其中一種。

二者更多細(xì)節(jié)詳見(jiàn): 傳統(tǒng)藍(lán)牙和低功耗藍(lán)牙的區(qū)別

iOS中藍(lán)牙相關(guān)功能都封裝進(jìn)了 CoreBluetooth 類中,其中有幾個(gè)常見(jiàn)的參數(shù)和概念

具體API參考 CoreBluetooth藍(lán)牙開(kāi)發(fā)

保存到數(shù)組中的設(shè)備可通過(guò) UUID 來(lái)進(jìn)行區(qū)分。從 iOS7之后蘋(píng)果不提供外設(shè)的mac地址,外設(shè)的唯一標(biāo)識(shí)換成了由mac封裝加密后的UUID,需要注意的是不同的手機(jī)獲取同一個(gè)外設(shè)的UUID是不同的,所以在不同手機(jī)之間UUID不是唯一的,但在本機(jī)上可以作為唯一標(biāo)識(shí)(特殊情況手機(jī)刷機(jī)后也會(huì)改變UUID)。

如何獲取Mac地址

一般使用場(chǎng)景是根據(jù)Mac地址區(qū)分某個(gè)外設(shè)

注意點(diǎn):

寫(xiě)入數(shù)據(jù)時(shí)可能會(huì)遇到需要分包發(fā)送的情況,我們可以通過(guò)下面的API或許當(dāng)前特征支持的最大的單條寫(xiě)入長(zhǎng)度

maxLength 一般取決于藍(lán)牙模塊內(nèi)部接收 緩沖區(qū) 的大小,很多硬件設(shè)備這個(gè)緩沖區(qū)的大小是 20 字節(jié), 這個(gè)大小也和特征的寫(xiě)入權(quán)限有關(guān),像具有寫(xiě)入權(quán)限 withResponse 類的特征其大小一般為 512 字節(jié),當(dāng)然這些都是取決于設(shè)備測(cè)的設(shè)置;

當(dāng)我們單次發(fā)送的數(shù)據(jù)字節(jié)長(zhǎng)度大于 maxLength 時(shí),我們就需要采用分包的方式來(lái)發(fā)送數(shù)據(jù)了,

分包發(fā)送的邏輯類似于下面

這邊延時(shí)主要是設(shè)備側(cè)的接收模塊接收數(shù)據(jù)以及處理能力有限

外圍設(shè)備測(cè)和中心設(shè)備(大部分情況下是手機(jī))保持藍(lán)牙連接的狀態(tài)下,如果長(zhǎng)時(shí)間不產(chǎn)生交互,藍(lán)牙就會(huì)斷開(kāi),所以為了保持兩者持續(xù)的連接狀態(tài),需要做保活處理,也就是需要持續(xù)的發(fā)送心跳包(watchdog)。相應(yīng)的處理是使用一個(gè)定時(shí)器定時(shí)向設(shè)備側(cè)發(fā)送符合設(shè)備協(xié)議格式的心跳包。

斷開(kāi)連接很簡(jiǎn)單,只需要調(diào)用 [self.centralManager cancelPeripheralConnection:peripheral] 傳入需要斷開(kāi)連接的設(shè)備對(duì)象就行了。斷開(kāi)連接時(shí)會(huì)自動(dòng)調(diào)用 centralManager:didDisconnectPeripheral:error: 代理方法。

按照之前的慣例,當(dāng)error為nil時(shí)表示斷開(kāi)成功,error不為nil時(shí)斷開(kāi)失敗。這種理解是錯(cuò)誤的。

當(dāng)你調(diào)用 cancelPeripheralConnection: 方法(主動(dòng)斷開(kāi))斷開(kāi)連接時(shí)error為nil ; 沒(méi)有調(diào)用這個(gè)方法(異常斷開(kāi))而斷開(kāi)時(shí)error返回的是異常斷開(kāi)的原因。也可以理解為主動(dòng)調(diào)用斷開(kāi)連接方法一定會(huì)斷開(kāi)

接下來(lái)就是斷開(kāi)重連的問(wèn)題了,對(duì)藍(lán)牙功能進(jìn)行封裝時(shí)肯定少不了斷開(kāi)重連。首先斷開(kāi)時(shí)可通過(guò)上面的代理方法的error是否為nil判斷是否是異常斷開(kāi),一般情況下異常斷開(kāi)時(shí)是需要重連的

原因就是當(dāng)設(shè)備斷開(kāi)連接后 peripheral.services 為nil了,當(dāng)然 service.characteristics 也是nil,所以需要在斷開(kāi)連接時(shí)把保存這個(gè)設(shè)備對(duì)應(yīng)的服務(wù)和特征全部清除,然后在連接成功時(shí)重新過(guò)一遍發(fā)現(xiàn)服務(wù)和發(fā)現(xiàn)特征的流程就好了。

iOS7 開(kāi)始,Apple加入了Beacon圍欄檢測(cè)的API, ( iBeacon-維基百科 ), 其工作方式是,配備有低功耗藍(lán)牙(BLE)通信功能的設(shè)備使用 BLE 技術(shù)向周?chē)l(fā)送自己特有的 ID,接收到該 ID 的應(yīng)用軟件會(huì)根據(jù)該 ID 采取一些行動(dòng)。比如,在店鋪里設(shè)置 iBeacon 通信模塊的話,便可讓 iPhone 和 iPad 上運(yùn)行一資訊告知服務(wù)器,或者由服務(wù)器向顧客發(fā)送折扣券及進(jìn)店積分, 或者公司的手機(jī)打卡,只要手機(jī)靠近打卡器一定范圍,手機(jī)測(cè)就向打開(kāi)器發(fā)送打卡信息,從而自動(dòng)打卡。這種場(chǎng)景還有很多。 其中一個(gè)最重要的功能就是App的喚醒功能(殺死后也能喚醒)

舉一個(gè)我們的例子,我們的產(chǎn)品業(yè)務(wù)場(chǎng)景就是在進(jìn)入車(chē)輛以后,需要使用藍(lán)牙連接我們的后裝車(chē)載設(shè)備以采集車(chē)輛信息和駕駛行為行程等,這里有一個(gè)問(wèn)題就是在App被殺死的情況下如何喚醒App, 因?yàn)椴豢赡芤笥脩裘看味贾鲃?dòng)去打開(kāi)App,這樣體驗(yàn)太差。我們的做法是通過(guò)iBeacon,當(dāng)我們的車(chē)輛點(diǎn)火以后,設(shè)備測(cè)通電,發(fā)出 iBeacon廣播 ,App實(shí)現(xiàn)監(jiān)聽(tīng)iBeacon相關(guān)功能后就可以喚醒我們App,然后在相應(yīng)的回調(diào)的處理一些事情,比如通過(guò)藍(lán)牙連接設(shè)備。這里的前提條件是我們的硬件設(shè)備測(cè)包含iBeacon模塊,具有iBeacon功能,而且對(duì)iBeacon的廣播頻率也有一定的要求,長(zhǎng)了可能喚醒的功能會(huì)不穩(wěn)定,官方建議的好像是100ms,頻率超高越耗電,但可以讓手機(jī)或其它監(jiān)聽(tīng)設(shè)備越快地發(fā)現(xiàn)iBeacon。標(biāo)準(zhǔn)的BLE廣播距離是100m,這使Beacon在室內(nèi)位置跟蹤場(chǎng)景下的效果更理想。

關(guān)于iBeacon更多的使用及介紹請(qǐng)參考

蘋(píng)果核 - iOS端近場(chǎng)圍欄檢測(cè)(一) ——iBeacon

iBeacon技術(shù)初探

iOS開(kāi)發(fā)中遇到的小問(wèn)題-----總結(jié)

1、統(tǒng)一收鍵盤(pán)的方法

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

2、提示框

BBAlertView *alert = [[BBAlertView alloc] initWithStyle:BBAlertViewStyleDefault

Title:@"刪除訂單"

message:@"是否刪除訂單,"

customView:nil

delegate:self

cancelButtonTitle:L(@"取消")

otherButtonTitles:L(@"確認(rèn)")];

[alert setCancelBlock:^{

}];

[alert setConfirmBlock:^{

[self orderDidRemovePressDown:tempDic Index:index.section];

}];

[alert show];

3、圖片的自適應(yīng)功能

self.brandImage.contentMode = UIViewContentModeScaleAspectFit;

4、cocoaPods清除緩存問(wèn)題

$ sudo rm -fr ~/.cocoapods/repos/master

$ pod setup

5、設(shè)置顯示鍵盤(pán)的樣式

textView.keyboardType =UIKeyboardTypeDefault;

//設(shè)置鍵盤(pán)右下角為完成(中文輸入法下)

textView.returnKeyType=UIReturnKeyDone;

6、輸出當(dāng)前時(shí)間

NSDateFormatter * dateFormatter=[[NSDateFormatter alloc]init];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];

NSLog(@"當(dāng)前毫秒時(shí)間1==%@",[dateFormatter stringFromDate:[NSDate date]]);

7、顯示兩秒然后消失

UILabel * lab=[[UILabel alloc]initWithFrame:CGRectMake(60,Main_Screen_Height-64-49-60, Main_Screen_Width-120, 50)];

lab.backgroundColor=[UIColor grayColor];

ViewRadius(lab, 20);

lab.textAlignment=NSTextAlignmentCenter;

lab.text=@"請(qǐng)先進(jìn)行實(shí)名制驗(yàn)證";

[self.view addSubview:lab];

[UILabel animateWithDuration:2 animations:^{

lab.alpha=0;

}completion:^(BOOL finished) {

[lab removeFromSuperview];

}];

8、設(shè)置placeholder屬性的大小和顏色

[_phoneFie setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"];

[_phoneFie setValue:[UIFont boldSystemFontOfSize:15] forKeyPath:@"_placeholderLabel.font"];

_phoneFie.returnKeyType=UIReturnKeyDone;

9、設(shè)置cell的交互完全不可以使用

//[cellTwo setUserInteractionEnabled:NO];

//設(shè)置cell不可以點(diǎn)擊,但是上面的子控件可以交互

cellTwo.selectionStyle=UITableViewCellSelectionStyleNone;

10、將textField的placeholder 屬性的字體向右邊移動(dòng)5

_field.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10*Width_375, _field.frame.size.height)];

_field.leftViewMode = UITextFieldViewModeAlways;

11、開(kāi)新線程使按鈕上的時(shí)間變化

-(void)startTime{

__block int timeout=60; //倒計(jì)時(shí)時(shí)間

UIButton * btn=(UIButton *)[self.view viewWithTag:1000];

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);

dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒執(zhí)行

dispatch_source_set_event_handler(_timer, ^{

if(timeout=0){

dispatch_source_cancel(_timer);

dispatch_async(dispatch_get_main_queue(), ^{

[btn setTitle:@"發(fā)送驗(yàn)證碼" forState:UIControlStateNormal];

btn.enabled = YES;

});

}else{

//? int minutes = timeout / 60;

int miao = timeout % 60;

if (miao==0) {

miao = 60;

}

NSString *strTime = [NSString stringWithFormat:@"%.2d", miao];

dispatch_async(dispatch_get_main_queue(), ^{

[btn setTitle:[NSString stringWithFormat:@"剩余%@秒",strTime] forState:UIControlStateNormal];

btn.enabled = NO;

});

timeout--;

}

});

dispatch_resume(_timer);

}

12、隱藏TableView 中多余的行

UIView * view=[[UIView alloc]initWithFrame:CGRectZero];

[_tabelView setTableFooterView:view];

13、UIView添加背景圖片

UIImage * image=[UIImage imageNamed:@"friend750"];

headSeV.layer.contents=(id)image.CGImage;

14、UITableView取消選中狀態(tài)

[tableView deselectRowAtIndexPath:indexPath animated:YES];// 取消選中

15、帶屬性的字符串

NSFontAttributeName? 字體

NSParagraphStyleAttributeName? 段落格式

NSForegroundColorAttributeName? 字體顏色

NSBackgroundColorAttributeName? 背景顏色

NSStrikethroughStyleAttributeName 刪除線格式

NSUnderlineStyleAttributeName? ? ? 下劃線格式

NSStrokeColorAttributeName? ? ? ? 刪除線顏色

NSStrokeWidthAttributeName 刪除線寬度

NSShadowAttributeName? 陰影

1.? 使用實(shí)例

UILabel *testLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 320, 30)];

testLabel.backgroundColor = [UIColor lightGrayColor];

testLabel.textAlignment = NSTextAlignmentCenter;

NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:@"今天天氣不錯(cuò)呀"];

[AttributedStr addAttribute:NSFontAttributeName

value:[UIFont systemFontOfSize:16.0]

range:NSMakeRange(2, 2)];

[AttributedStr addAttribute:NSForegroundColorAttributeName

value:[UIColor redColor]

range:NSMakeRange(2, 2)];

testLabel.attributedText = AttributedStr;

[self.view addSubview:testLabel];

16、加大按鈕的點(diǎn)擊范圍

把UIButton的frame 設(shè)置的大一些,然后給UIButton設(shè)置一個(gè)小些的圖片

[tmpBtn setImageEdgeInsets:UIEdgeInsetsMake(5, 5, 5, 5)];

// 注意這里不能用setBackgroundImage

[tmpBtn setImage:[UIImage imageNamed:@"testBtnImage"] forState:UIControlStateNormal];

17、//避免self的強(qiáng)引用

__weak ViewController *weakSelf = self;

18、//類別的創(chuàng)建

command +n ——Objective-C File———(File Type? 選擇是類別還是擴(kuò)展)———(Class? 選擇為哪個(gè)控件寫(xiě)類別)

19、修改UITableview 滾動(dòng)條顏色的方法

self.tableView.indicatorStyle=UIScrollViewIndicatorStyleWhite;

20、利用UIWebView顯示pdf文件

webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];

[webView setDelegate:self];

[webView setScalesPageToFit:YES];

[webViewsetAutoresizingMask:UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleHeight];

[webView setAllowsInlineMediaPlayback:YES];

[self.view addSubview:webView];

NSString *pdfPath = [[NSBundle mainBundle]pathForResource:@"ojc" ofType:@"pdf"];

NSURL *url = [NSURLfileURLWithPath:pdfPath];

NSURLRequest *request = [NSURLRequestrequestWithURL:url

cachePolicy:NSURLRequestUseProtocolCachePolicy

timeoutInterval:5];

[webView loadRequest:request];

21、將plist文件中的數(shù)據(jù)賦給數(shù)組

NSString *thePath = [[NSBundle mainBundle]pathForResource:@"States" ofType:@"plist"];

NSArray *array = [NSArrayarrayWithContentsOfFile:thePath];

22、隱藏狀態(tài)欄

[[UIApplication shareApplication]setStatusBarHidden: YES animated:NO];

23、給navigation? Bar? 設(shè)置title顏色

UIColor *whiteColor = [UIColor whiteColor];

NSDictionary *dic = [NSDictionary dictionaryWithObject:whiteColor forKey:NSForegroundColorAttributeName];

[self.navigationController.navigationBar setTitleTextAttributes:dic];

24、使用AirDrop 進(jìn)行分享

NSArray *array = @[@"test1", @"test2"];

UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:array applicationActivities:nil];

[self presentViewController:activityVC animated:YES

completion:^{

NSLog(@"Air");

}];

25、把tableview里面Cell的小對(duì)勾的顏色改成別的顏色

_mTableView.tintColor = [UIColor redColor];

26、UITableView去掉分割線

_tableView.separatorStyle = NO;

27、正則判斷手機(jī)號(hào)碼地址格式

- (BOOL)isMobileNumber:(NSString *)mobileNum {

//? ? 電信號(hào)段:133/153/180/181/189/177

//? ? 聯(lián)通號(hào)段:130/131/132/155/156/185/186/145/176

//? ? 移動(dòng)號(hào)段:134/135/136/137/138/139/150/151/152/157/158/159/182/183/184/187/188/147/178

//? ? 虛擬運(yùn)營(yíng)商:170

NSString *MOBILE = @"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|7[06-8])\\d{8}$";

NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];

return [regextestmobile evaluateWithObject:mobileNum];

}

28、控制交易密碼位數(shù)

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

if (textField.text.length =6){

[MBProgressHUD showMessage:@"密碼為6位" afterDelay:1.8];

return NO;

}

return YES;

}

29、判斷是不是空

if ([real_name isKindOfClass:[NSNull class]] ) {

return NO;}

30、點(diǎn)擊號(hào)碼撥打電話

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://400966220"]];

31、控制UITabbar的選擇哪一個(gè)

[self.tabBarController setSelectedIndex:1];

32、獲取當(dāng)前App的版本號(hào)

NSDictionary?*infoDictionary?=?[[NSBundle?mainBundle]?infoDictionary];

CFShow(infoDictionary);

//?app名稱

NSString?*app_Name?=?[infoDictionary?objectForKey:@"CFBundleDisplayName"];

//?app版本

NSString?*app_Version?=?[infoDictionary?objectForKey:@"CFBundleShortVersionString"];

//?app?build版本

NSString?*app_build?=?[infoDictionary?objectForKey:@"CFBundleVersion"];

33、蘋(píng)果app權(quán)限NSPhotoLibraryUsageDescriptionApp需要您的同意,才能訪問(wèn)相冊(cè)NSCameraUsageDescriptionApp需要您的同意,才能訪問(wèn)相機(jī)NSMicrophoneUsageDescriptionApp需要您的同意,才能訪問(wèn)麥克風(fēng)NSLocationUsageDescriptionApp需要您的同意,才能訪問(wèn)位置NSLocationWhenInUseUsageDescriptionApp需要您的同意,才能在使用期間訪問(wèn)位置NSLocationAlwaysUsageDescriptionApp需要您的同意,才能始終訪問(wèn)位置NSCalendarsUsageDescriptionApp需要您的同意,才能訪問(wèn)日歷NSRemindersUsageDescriptionApp需要您的同意,才能訪問(wèn)提醒事項(xiàng)NSMotionUsageDescriptionApp需要您的同意,才能訪問(wèn)運(yùn)動(dòng)與健身NSHealthUpdateUsageDescriptionApp需要您的同意,才能訪問(wèn)健康更新NSHealthShareUsageDescriptionApp需要您的同意,才能訪問(wèn)健康分享NSBluetoothPeripheralUsageDescriptionApp需要您的同意,才能訪問(wèn)藍(lán)牙NSAppleMusicUsageDescriptionApp需要您的同意,才能訪問(wèn)媒體資料庫(kù)

34、控件設(shè)置邊框

_describText.layer.borderColor = [[UIColor colorWithRed:215.0 / 255.0 green:215.0 / 255.0 blue:215.0 / 255.0 alpha:1] CGColor];

_describText.layer.borderWidth = 1.0;

_describText.layer.cornerRadius = 4.0;

_describText.clipsToBounds = YES;

35、//隱藏電池條的方法

-(BOOL)prefersStatusBarHidden{

return YES;

}

36、延時(shí)操作

[NSThread sleepForTimeInterval:2];

方法二:

[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.5];

37、系統(tǒng)風(fēng)火輪:

[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; //隱藏

38、//didSelectRowAtIndexPath:方法里面找到當(dāng)前的Cell

AssessMentCell * cell = [tableView cellForRowAtIndexPath:indexPath];

39、navigation上返回按鈕的顏色以及返回按鈕后面文字去掉

//返回按鈕后邊文字去掉

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)

forBarMetrics:UIBarMetricsDefault];

//設(shè)置左上角返回按鈕的顏色

self.navigationController.navigationBar.tintColor = UIColorFromRGB(0x666666);

40、lineBreakMode //設(shè)置文字過(guò)長(zhǎng)時(shí)的顯示格式

label.lineBreakMode = NSLineBreakByCharWrapping;以字符為顯示單位顯

示,后面部分省略不顯示。

label.lineBreakMode = NSLineBreakByClipping;剪切與文本寬度相同的內(nèi)

容長(zhǎng)度,后半部分被刪除。

label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字

以……方式省略,顯示尾部文字內(nèi)容。

label.lineBreakMode = NSLineBreakByTruncatingMiddle;中間的內(nèi)容

以……方式省略,顯示頭尾的文字內(nèi)容。

label.lineBreakMode = NSLineBreakByTruncatingTail;結(jié)尾部分的內(nèi)容

以……方式省略,顯示頭的文字內(nèi)容。

label.lineBreakMode = NSLineBreakByWordWrapping;以單詞為顯示單位顯

示,后面部分省略不顯示。

iOS開(kāi)發(fā) 創(chuàng)建Bundle及注意事項(xiàng)

創(chuàng)建文件夾TestBundle,并改名為T(mén)estBundle.bundle。然后再把資源文件放入該Bundle就可以了。

使用此方式的目的:可通過(guò)Xcode管理資源文件,且可多Target管理。

在 Build Settings 中修改 Base SDK 為 iOS

在 Build Settings 中修改 Versioning System 為 None

此處需要特別注意,一定要確認(rèn),如果設(shè)置不對(duì),會(huì)導(dǎo)致Bundle中包含了可執(zhí)行文件,會(huì)導(dǎo)致上架AppStore被拒。

在 Build Settings 中刪除 Installation Directory 后面對(duì)應(yīng)的路徑。

在 Build Settings 中刪除 Code Signing Identity 后面對(duì)應(yīng)的路徑。(先選擇Other,再刪除即可)

在 Build Settings 中設(shè)置 iOS Deployment Target 為 iOS9.0

一般情況下設(shè)置為最小的即可。

在 Build Settings 中設(shè)置 Skip Install 為 NO

在 Build Settings 中設(shè)置 COMBINE_HIDPI_IMAGES 為 NO

在 Info.plist 中刪除 Executable file

確認(rèn)生成的Bundle的 Info.plist , Bundle OS Type code 值是否為 BNDL ,如不是,手動(dòng)修改為 BNDL

網(wǎng)站名稱:ios開(kāi)發(fā)注意,ios注意事項(xiàng)
當(dāng)前地址:http://chinadenli.net/article37/dsgdssj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)移動(dòng)網(wǎng)站建設(shè)網(wǎng)站收錄動(dòng)態(tài)網(wǎng)站微信公眾號(hào)做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作