iOS面試題 - 應(yīng)用測(cè)試跃闹、發(fā)布和消息推送

應(yīng)用測(cè)試和發(fā)布

1、什么是iOS中的App ID毛好?

每一個(gè)App都有一個(gè)唯一的望艺、獨(dú)立的ID,這就是App ID肌访。App ID由兩個(gè)部分構(gòu)成: Team IDBundle ID,形式為Team ID.Bundle ID找默。

屏幕快照 2019-06-04 上午11.21.08.png
  • Team ID指定App的開發(fā)者或開發(fā)團(tuán)隊(duì)。
  • Bundle ID指定App或與之相關(guān)的一系列App吼驶。Bundle ID可以唯一確定App惩激,Bundle ID是在Xcode項(xiàng)目中確定的。

App ID字符串通常以反域名(reverse-domain-name)格式(com.domainname.appname)作為前綴(Prefix/Seed)蟹演,一般不超過255個(gè)ASCII字符风钻。

App ID分為兩類:

  • Explicit App ID:唯一的App ID,用于唯一標(biāo)識(shí)一個(gè)應(yīng)用程序酒请。例如“com.apple.garageband”這個(gè)App ID骡技,用于標(biāo)識(shí)Bundle Identifier“com.apple.garageband”App

  • Wildcard App ID:含有通配符的App ID羞反,用于標(biāo)識(shí)一組應(yīng)用程序布朦。

屏幕快照 2019-06-04 上午11.28.37.png

例如*(實(shí)際上是Application Identifier Prefix)表示所有應(yīng)用程序;而“com.apple.*”可以表示Bundle Identifier“com.apple.”開頭(蘋果公司)的所有應(yīng)用程序昼窗。

屏幕快照 2019-06-04 上午11.29.20.png

App ID

2是趴、什么是iOS中的Code Signing?

屏幕快照 2019-06-05 上午10.17.24.png

為了確定App是誰開發(fā)的,開發(fā)之后有沒有修改膏秫,蘋果公司引進(jìn)了Code Signing的機(jī)制右遭。有了它做盅,從App Store下載某個(gè)App后缤削,iOSMacOS系統(tǒng)可以通過簽名確認(rèn)是誰開發(fā)了此App窘哈,以及簽名是否有效。

只要App對(duì)應(yīng)的可執(zhí)行文件被修改亭敢,簽名就認(rèn)定為無效滚婉。如果App的簽名無效,那么系統(tǒng)將拒絕運(yùn)行App帅刀,以保證整個(gè)系統(tǒng)的安全性和用戶體驗(yàn)让腹。Code Signing對(duì)應(yīng)的簽名是由一對(duì)公共密鑰和私有密鑰,以及一個(gè)由Apple簽發(fā)的證書構(gòu)成的扣溺。其中私有密鑰用來產(chǎn)生簽名骇窍;證書則包含了公共密鑰并由此認(rèn)定是開發(fā)者。

Code Signing Guide

3锥余、什么是iOS中的App Thinning?

App Thinning腹纳,中文為“應(yīng)用瘦身”,指的是App Store和操作系統(tǒng)在安裝iOSwatchOSApp時(shí)驱犹,通過一系列的優(yōu)化嘲恍,盡可能地減小安裝包的大小,使得App以最節(jié)省資源的方式雄驹、最適合的大小被安裝到設(shè)備上佃牛。其包括三種類型:Slicing、Bitcode医舆、On-demand Resource

Slicing

App切片(slicing)俘侠,根據(jù)蘋果的文檔,

切片是創(chuàng)建和提供不同的目標(biāo)設(shè)備的應(yīng)用程序包的變體(variant)的過程蔬将。

一個(gè)變體(variant)只包含可執(zhí)行架構(gòu)和目標(biāo)設(shè)備所需要的資源兼贡。換句話來說,應(yīng)用程序切片只提供給與每個(gè)設(shè)備相關(guān)的資源(取決于屏幕分辨率和架構(gòu)等等)娃胆。實(shí)際上遍希,應(yīng)用程序切片完成了 App 瘦身的大部分工作。

Bitcode

字節(jié)碼是一個(gè)編譯好的程序的中間表示形式里烦。上傳到iTunes Connect 中的包含字節(jié)碼的app將會(huì)在 App store 中進(jìn)行鏈接和編譯凿蒜。蘋果會(huì)對(duì)包含字節(jié)碼的二進(jìn)制app進(jìn)行二次優(yōu)化,而不需要提交一個(gè)新的app版本到app store中胁黑。

On-demand Resource

按需加載的資源就是在App初次安裝后需要下載的文件废封。例如,游戲的特定關(guān)卡(以及和這些關(guān)卡相關(guān)的內(nèi)容)只有在玩家解鎖時(shí)才可以下載丧蘸。此外漂洋,超過設(shè)置時(shí)間之后,玩家不需要的早期關(guān)卡可以被移除,以節(jié)省設(shè)備的存儲(chǔ)空間刽漂。

iOS 9 App 瘦身功能

4演训、向App Store提交App時(shí)有哪些原因可能被拒絕?

雖然現(xiàn)在App Store審核App越來越快了贝咙,被其拒絕上架所付出的成本也越來越低了样悟,但是在提交App之前還是應(yīng)該仔細(xì)檢測(cè),爭(zhēng)取一次性通過庭猩。

被App Store拒絕的原因有很多窟她,主要有以下幾種:

奔潰

程序本身有bug,第三方服務(wù)器出錯(cuò)都有可能造成App被App Store拒絕蔼水。注意震糖,一般測(cè)試是在線下環(huán)境中運(yùn)行App,而App Store是在線上環(huán)境運(yùn)行的趴腋,所以吊说,在提交審核之前,還是應(yīng)該要線上環(huán)境運(yùn)行一遍于样。

第三方

如果App需要安裝第三方應(yīng)用疏叨,比如需要QQ登錄,而測(cè)試員的手機(jī)中又沒有安裝QQ穿剖,如果出現(xiàn)提示安裝QQ信息蚤蔓,就有可能被App Store拒絕上架;另外糊余,使用第三方廣告秀又,也有可能因?yàn)檫`規(guī)被App Store拒絕上架

版權(quán)

第三方客戶端套用某平臺(tái)的名字,在App的描述或命名中為了提供點(diǎn)擊量和排名加入某些無關(guān)的關(guān)鍵字贬芥;或者是“山寨”其他App的行為吐辙;App中包含沒有授權(quán)的內(nèi)容,都會(huì)被App Store拒絕上架蘸劈。

材料不齊

有時(shí)App會(huì)因?yàn)槿鄙俨牧蠈?dǎo)致App Store無法審核昏苏。例如:缺少截圖或者使用錯(cuò)誤的截圖。這里只是部分情況威沫。蘋果官方有專門的審核文件贤惯,可以仔細(xì)閱讀。

缺少元數(shù)據(jù)問題

Guideline 2.3.8 - Performance - Accurate Metadata

We noticed that your app icons, screenshots, or other metadata items include content that is not appropriate for all age groups. 

Please see attached screenshots for details.

Next Steps

To resolve this issue, please revise your metadata to ensure that all items are appropriate for a 4+ age rating. Since this content is visible on the App Store by all users, even when purchasing is restricted by the app's rating, this content must meet the requirements for a 4+ rating.

For resources on metadata best practices, you may want to review the App Store Product Page information available on the Apple developer portal.

Since your iTunes Connect status is Rejected, a new binary will be required. Make the desired metadata changes when you upload the new binary.

NOTE: Please be sure to make any metadata changes to all app localizations by selecting each specific localization and making appropriate changes.

違法審核指南

比如:禁止傳銷和金錢相關(guān)的內(nèi)容出現(xiàn)在app中

5棒掠、蘋果Appstore加急審核方法孵构?

蘋果Appstore加急審核,是為開發(fā)者提供的快速審核通道烟很。加急審核主要用于解決緊急需求颈墅,例如重要節(jié)日功能蜡镶,嚴(yán)重的bug,遇到這些問題可以提出加急申請(qǐng)恤筛。加急申請(qǐng)入口

加急申請(qǐng)的整個(gè)流程

1官还、首先打開itunesconnect管理后臺(tái)在后臺(tái)首頁的最下方,找到 Contact us(聯(lián)系我們)

屏幕快照 2019-06-05 上午11.19.24.png

2叹俏、進(jìn)入聯(lián)系我們頁面

屏幕快照 2019-06-05 上午11.20.49.png
屏幕快照 2019-06-05 上午11.17.31.png
屏幕快照 2019-06-05 上午11.22.01.png

3妻枕、進(jìn)入加急審核頁面僻族,按需求填寫信息提交即可

屏幕快照 2019-06-05 上午11.55.54.png
屏幕快照 2019-06-05 上午11.56.02.png

6粘驰、講講P12文件?

為什么需要P12文件

  • 正常情況下一個(gè)開發(fā)者賬號(hào)只能生成兩個(gè)cer證書
  • cer證書在生成時(shí)和電腦綁定
  • 如果一個(gè)電腦沒有對(duì)應(yīng)有效的cer證書,就不能真機(jī)調(diào)試
  • 蘋果為了解決讓多人都可以真機(jī)調(diào)試,但是不會(huì)無限制生成證書,推出了p12文件

P12文件的作用

  • p12證書的作用相當(dāng)于之前的cer證書
  • 用于驗(yàn)證我們電腦的身份,讓電腦具有真機(jī)調(diào)試的能力

如何生成P12證書

  • 找到之前安裝的cer證書(在鑰匙串中),點(diǎn)擊右鍵導(dǎo)出
4010043-a0b7622c48fde17b.png
  • 選擇存放的目錄


    image.png
  • 輸入密碼生成即可述么,一般不輸入方便使用

4010043-577f5b445899584d.png

7蝌数、測(cè)試APP證書配置

1、配置cer證書

  • 作用:用于決定哪臺(tái)電腦可以打包測(cè)試程序
  • 結(jié)果:會(huì)生成cer證書,需要下載安裝證書

2度秘、配置APPID

  • 作用:用于決定讓哪些App可以測(cè)試打包
  • 結(jié)果:不會(huì)生成新的文件,之后會(huì)利用該AppID生成描述文件
  • 類型:
    1)明確的APPID:可以做特殊功能:比如內(nèi)購/遠(yuǎn)程推送
    2)模糊的APPID:方便測(cè)試,但是不能做特殊功能

3顶伞、配置Device

  • 作用:用于決定讓哪些真機(jī)可以用于測(cè)試打包
  • 結(jié)果:不會(huì)生成新的文件,之后在生成描述文件時(shí)會(huì)需要選擇設(shè)備

4、配置描述文件

  • 作用:將剛才配置的三個(gè)內(nèi)容聯(lián)系起來
  • 結(jié)果:會(huì)生成新的文件,需要下載安裝(雙擊安裝即可,會(huì)自動(dòng)安裝到Xcode中)

5剑梳、總結(jié):

  • 最終生成兩個(gè)文件:證書文件和描述文件

8唆貌、推送證書到期處理

推送證書有時(shí)間期限的,有時(shí)我們應(yīng)用突然接不到消息了垢乙,有可能就是證書過期了锨咙,有效期一般為1年左右,那有效期快過了怎么處理呢追逮?

解決方案:

1酪刀、刪除MAC上鑰匙串訪問中對(duì)應(yīng)的推送證書
2、去開發(fā)者中心刪掉過期推送證書钮孵,重新按著上面的步驟重新來一遍
3骂倘、在第三方平臺(tái)上重新上傳新的.p12證書

9、Metadata Reject

處于“Metadata Reject”狀態(tài)的應(yīng)用巴席,通常不需要重新上傳應(yīng)用历涝,只需要把相應(yīng)的元數(shù)據(jù)信息修改好,在“Resolution Center”給審核人員回復(fù)說明一下即可漾唉,如果選擇重新上傳應(yīng)用荧库,就會(huì)需要重新排隊(duì)等待審核

10、審核被拒絕情況

1毡证、Guideline 1.2 - Safety - User Generated Content

Your app enables the display of user-generated content but does not have the proper precautions in place.

Next Steps

To resolve this issue, please revise your app to implement all of the following precautions:

- Require that users agree to terms (EULA) and these terms must make it clear that there is no tolerance for objectionable content or abusive users
- A method for filtering objectionable content
- A mechanism for users to flag objectionable content
- A mechanism for users to block abusive users
- The developer must act on objectionable content reports within 24 hours by removing the content and ejecting the user who provided the offending content

如果你的 App 內(nèi)有發(fā)帖等UGC(用戶產(chǎn)生內(nèi)容)功能电爹,必須提供用戶協(xié)議,并留有內(nèi)容舉報(bào)功能料睛,否則就會(huì)被審核拒絕丐箩。

解決方案:

1摇邦、注冊(cè)頁要有用戶隱私相關(guān)協(xié)議,如果沒有注冊(cè)功能屎勘,那就在初次登錄的時(shí)候彈出來讓用戶看施籍;或者就是登錄的時(shí)候加個(gè)同意用戶隱私協(xié)議的按鈕啊,必須點(diǎn)了勾選上才能登錄概漱。知乎底部加一個(gè)用戶協(xié)議

4010043-ed56d8039e2be262.png

2丑慎、 朋友圈、動(dòng)態(tài)這種要有舉報(bào)功能即UGC內(nèi)容需要有投訴舉報(bào)的地方

3瓤摧、可以在用戶生成內(nèi)容上添加上舉報(bào)按鈕竿裂,同時(shí)也要按相應(yīng)要求加入其他相關(guān)功能并立即執(zhí)行;用戶協(xié)議一般加在用戶的注冊(cè)入口照弥,iTC后臺(tái)的隱私協(xié)議中也需要填上腻异。

2、Guideline 3.2.2 - Business - Other Business Model Issues - Unacceptable

The primary purpose of your app is to encourage users to watch ads or perform marketing-oriented tasks, which is not appropriate for the App Store.

Next Steps

We encourage you to review your app concept and incorporate different content and features that are in compliance with the App Store Review Guidelines.

問題:App主要鼓勵(lì)用戶做任務(wù)这揣,和看廣告悔常,這種模式不被AppStore接受

解決方案:

因?yàn)楸旧鞟pp的設(shè)計(jì)是觀看視頻和推廣,這些任務(wù)不能取消给赞,所以分為線上模式和審核模式机打,審核模式把相關(guān)任務(wù)屏蔽,關(guān)于金幣的字眼全部屏蔽片迅。在線上模式放開(注意:包括審核時(shí)所填寫的信息和宣傳圖片都不能帶有與金幣或者推廣任務(wù)相關(guān)的信息)

3残邀、Guideline 2.1 - Performance - App Completeness

We discovered one or more bugs in your app when reviewed on iPad running iOS 11.3 on Wi-Fi connected to an IPv6 network.

Specifically, we found that your app did not load content properly after launched.

Please see attached screenshots for details.

Next Steps

To resolve this issue, please run your app on a device to identify any issues, then revise and resubmit your app for review.

If we misunderstood the intended behavior of your app, please reply to this message in Resolution Center to provide information on how these features were intended to work.

For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce the issue. For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue.

其實(shí)就是新設(shè)備網(wǎng)絡(luò)權(quán)限第一次不能訪問,需要進(jìn)行監(jiān)聽加載數(shù)據(jù)障涯。iOS10 優(yōu)化APP首次安裝網(wǎng)絡(luò)權(quán)限提示方案罐旗。解決方案很簡(jiǎn)單,可以監(jiān)聽網(wǎng)絡(luò)狀態(tài)唯蝶,網(wǎng)絡(luò)連接時(shí)重新請(qǐng)求數(shù)據(jù)就可以了九秀。

11、測(cè)試設(shè)備數(shù)的限制

測(cè)試設(shè)備100個(gè)數(shù)目限制的詳細(xì)規(guī)則

  • 每個(gè)開發(fā)者在一個(gè)membership year(從繳費(fèi)日開始算起粘我,一年之內(nèi)算一個(gè)membership year)中鼓蜒,只能有100個(gè)增加設(shè)備的名額,如果你增加一個(gè)設(shè)備征字,之后又將該設(shè)備刪掉都弹,并不會(huì)將用掉的名額恢復(fù)

  • 開發(fā)者在每個(gè)membership year開始的時(shí)候,team agentadmin角色可以選擇刪除一些設(shè)備來恢復(fù)資格匙姜,也可以清空所有設(shè)備來恢復(fù)到100次設(shè)備的名額畅厢。這個(gè)操作在team agentadmin在一次新的membership year開始后即可使用。在使用時(shí)需要注意氮昧,先將需要?jiǎng)h除的設(shè)備刪掉框杜,然后才能添加需要新增的設(shè)備浦楣。一旦開始增加新設(shè)備,刪除設(shè)備以恢復(fù)名額的功能將不再可用咪辱。

  • 在以后整個(gè)membership year中振劳,刪除設(shè)備不會(huì)增加新的名額

舉個(gè)例子:

  • 假如第一年你增加了70個(gè)設(shè)備,同時(shí)刪除了10個(gè)設(shè)備油狂,這個(gè)時(shí)候历恐,雖然你的設(shè)備數(shù)是60,但是可用的增加測(cè)試機(jī)的名額卻是只有30個(gè)

  • 到了第二年专筷, 你延續(xù)開發(fā)者身份弱贼,在你第一次登錄進(jìn)去后, 你可以看到你的可用設(shè)備恢復(fù)成100-60=40個(gè)了仁堪,這個(gè)時(shí)候哮洽,你可以選擇刪除一些設(shè)備填渠,例如你又刪除了20個(gè)設(shè)備弦聂,這樣你的名額數(shù)變成了60個(gè)。之后你增加了1個(gè)設(shè)備氛什,因?yàn)槟氵x擇了增加新設(shè)備莺葫,蘋果認(rèn)為你以及放棄了刪除設(shè)備以恢復(fù)名額的機(jī)會(huì),這樣枪眉,你的名額就固定成59個(gè)了捺檬,以后刪除設(shè)備都不會(huì)增加新設(shè)備,直到你的下一個(gè)membership year開始時(shí)才又會(huì)有這樣的機(jī)會(huì)來刪除設(shè)備釋放名額

如果設(shè)備數(shù)達(dá)到上限贸铜,又急需要增加新設(shè)備怎么辦堡纬?對(duì)此你可以給蘋果的技術(shù)客服發(fā)郵件要求他們幫助刪除所有設(shè)備,并且恢復(fù)到增加100個(gè)測(cè)試設(shè)備的名額蒿秦。

其實(shí)有來testflight設(shè)備數(shù)都不是問題烤镐,完全是為測(cè)試準(zhǔn)備的

推送

1、本地推送通知的流程是怎樣的棍鳖?

UserNotifications框架是針對(duì)遠(yuǎn)程和本地消息通知的框架炮叶,其流程主要分為以下4步:

1)注冊(cè)。通過調(diào)用requestAuthrization這個(gè)方法渡处,通知中心會(huì)向用戶發(fā)送通知許可請(qǐng)求镜悉。用戶在彈出的alert請(qǐng)求中點(diǎn)擊“同意”按鈕,即可注冊(cè)

2)創(chuàng)建医瘫。首先設(shè)置信息內(nèi)容UNMutableNotificationContent和觸發(fā)機(jī)制UNNotificationTrigger侣肄;然后用這兩個(gè)值來創(chuàng)建UNNotificationRequest;最后將request加入到當(dāng)前通知中心UNUserNotificationCenter.current()

3)推送醇份。這一步想系統(tǒng)或者遠(yuǎn)程服務(wù)器推送通知的過程稼锅。收到通知后對(duì)應(yīng)的UI會(huì)顯示在手機(jī)界面上叮喳。

4)響應(yīng)。當(dāng)用戶看到通知后缰贝,點(diǎn)擊通知后會(huì)看到相應(yīng)的響應(yīng)選項(xiàng)馍悟。UNNotificationActionUNNotificationCategory用于設(shè)置響應(yīng)選項(xiàng)

2、遠(yuǎn)程消息推送原理

1929699-2eb0ea97a1599a0c.jpg

1剩晴、應(yīng)用程序注冊(cè)APNS消息推送锣咒。
2、iOSAPNS Server獲取devicetoken赞弥,應(yīng)用程序接收device token毅整。
3、應(yīng)用程序?qū)?code>device token發(fā)送給程序的PUSH服務(wù)端程序绽左。
4悼嫉、服務(wù)端程序向APNS服務(wù)發(fā)送消息。
5拼窥、APNS服務(wù)將消息發(fā)送給iPhone應(yīng)用程序戏蔑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鲁纠,隨后出現(xiàn)的幾起案子总棵,更是在濱河造成了極大的恐慌,老刑警劉巖改含,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件情龄,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡捍壤,警方通過查閱死者的電腦和手機(jī)骤视,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹃觉,“玉大人专酗,你說我怎么就攤上這事≈穆” “怎么了笼裳?”我有些...
    開封第一講書人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)粱玲。 經(jīng)常有香客問我躬柬,道長(zhǎng),這世上最難降的妖魔是什么抽减? 我笑而不...
    開封第一講書人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任允青,我火速辦了婚禮,結(jié)果婚禮上卵沉,老公的妹妹穿的比我還像新娘颠锉。我一直安慰自己法牲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開白布琼掠。 她就那樣靜靜地躺著拒垃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瓷蛙。 梳的紋絲不亂的頭發(fā)上悼瓮,一...
    開封第一講書人閱讀 49,785評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音艰猬,去河邊找鬼横堡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛冠桃,可吹牛的內(nèi)容都是我干的命贴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼食听,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼胸蛛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碳蛋,我...
    開封第一講書人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤胚泌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后肃弟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡零蓉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年笤受,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敌蜂。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡箩兽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出章喉,到底是詐尸還是另有隱情汗贫,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布秸脱,位于F島的核電站落包,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏摊唇。R本人自食惡果不足惜咐蝇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望巷查。 院中可真熱鬧有序,春花似錦抹腿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至盅称,卻和暖如春房蝉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背微渠。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工搭幻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逞盆。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓檀蹋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親云芦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子俯逾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容