2014-11-22 2 views
-1

Итак, я разрабатываю приложение, которое загружает весь контент через uiwebview и использует панель вкладок и панель навигации для пользователя, чтобы пересечь приложение. Недавно я отправил приложение в магазин приложений, и оно было отклонено со следующей информацией.UIWebview никогда не отображается и приложение отклонено

«3.2 приложения с шаблонным текстом будет отклонен

Мы обнаружили, что ваше приложение и/или его метаданные не представляются включать конечное содержание, которое не в соответствии с Руководством по рассмотрению App Store.

В частности, ваше приложение не содержит контента и не имеет способа войти в систему.

Для получения дополнительной информации см. Прилагаемый скриншот. "

screenshot

Из образа, кажется, что веб-вид никогда не был близок к визуализации (нижняя панель вкладок всегда, что темно-серый цвет до загрузки контента). Каждое предоставленное изображение было таким. Когда я спросил дальше, они заверили меня, что тестировали приложение как с интернет-соединением, так и с сотовыми данными.

У меня есть приложение, установленное на моем устройстве, и друзья, не меняя объективный код c, и он работает нормально. У меня есть несколько пользователей на стороне Android, поэтому в приложении есть много контента, если загружается веб-просмотр.

Веб-представление загружается в метод viewDidLoad() {}. Я не понимаю, что измениться, поэтому, если у кого-нибудь есть какие-то советы, я буду все уши. Нужно ли мне программно проверять, нет ли веб-представления? Если да, то как я могу это сделать?

- (void)viewDidLoad 
{ 
    webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height)]; 


[self.view addSubview:webView]; 


webView.scalesPageToFit = true; 
NSURL *url = [NSURL URLWithString:@"http://example.com/finnaRoot/index.php"]; 
NSURLRequest *requestURL = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:requestURL]; 
webView.scrollView.showsVerticalScrollIndicator = false; 
[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
webView.delegate = self; 
self.tabBarController.delegate = self; 
self.webView.scrollView.delegate = self; 

}

мой .h файл имеет:

#import <UIKit/UIKit.h> 

@interface FirstViewController : UIViewController <UITabBarControllerDelegate, UIScrollViewDelegate, UIWebViewDelegate> 

@property (nonatomic, strong) IBOutlet UIWebView *webView; 

@end 

и мой .m начинается с

@synthesize webView; 
+0

Можете вставить код?Как объявляется, создается и загружается веб-представление? У вас есть такая же конструкция на вашем устройстве (например, сборка релиза, а не сборка отладки) – jrturton

+0

Я просто добавил код. У меня было впечатление, что сборка релиза не может быть установлена, если только через магазин приложений. Разве это не так? – Voltron

+0

Вы можете установить сборку релиза на устройстве, либо установив из архива, либо изменив конфигурацию сборки действия «запустить». – jrturton

ответ

1

Это авантюра, так как вы не включили информацию в редакции, но:

Вы r webview переменная может быть объявлена ​​слабой. Слабые переменные будут израсходованы, если ничто иное не будет иметь для них ссылки. В приведенном выше коде ничего больше не имеет ссылки на веб-представление, пока он не будет добавлен как подвью.

Существует незначительная разница между версиями выпуска и отладки, когда это завершение происходит на самом деле. Это намного быстрее в выпусках.

Что может случиться, так это то, что в сборке App Store веб-представление немедленно уничтожается, и вы даже не добавляете его в представление, поэтому контент не отображается.

Если вы хотите сохранить его как слабый ivar, создайте локальную переменную сначала с веб-представлением и назначьте ее только для ivar, как только вы добавите ее в качестве подсмотра.

Но главный урок всегда, всегда выполняйте UAT, используя выпуски. Не просто создавать и запускать с подключенным устройством.

+0

Я думаю, что запрошенная вами информация сейчас выше. Я буду работать над установкой сборки релиза и посмотреть, что это показывает, следуя вашим заявлениям выше. Благодаря! – Voltron

+0

Хорошо, это не слабо, но вы не используете свойство должным образом. Удалите инструкцию '@ synhesize' и всегда используйте' self.webview', иначе вы обходите управление памятью свойства. – jrturton

+0

Я думаю, что изменение выше, возможно, сработало. Спасибо за информацию о выпуске сборки и простое тестирование устройства, мне придется погрузиться в эту тему! – Voltron

Смежные вопросы