<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog &#8211; Freejack</title>
	<atom:link href="http://www.freejack.fr/feed?cat=70" rel="self" type="application/rss+xml" />
	<link>http://www.freejack.fr</link>
	<description>Gestion de Projet et Développement Multimédia</description>
	<lastBuildDate>Mon, 28 Sep 2015 23:59:36 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.8.5</generator>
	<item>
		<title>Obtenir une description de l&#8217;arborescence d&#8217;une UIView</title>
		<link>http://www.freejack.fr/obtenir-description-arborescence-uiview</link>
		<comments>http://www.freejack.fr/obtenir-description-arborescence-uiview#respond</comments>
		<pubDate>Mon, 19 Nov 2012 13:09:03 +0000</pubDate>
		<dc:creator><![CDATA[Freejack]]></dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.freejack.fr/?p=1465</guid>
		<description><![CDATA[Dans la zone de Debug, il suffit d&#8217;utiliser recursiveDescription : po [self.view recursiveDescription] Et on obtient la description de toutes les UIView de l&#8217;arborescence de la vue concernée : (lldb) po [self.view recursiveDescription] (id) $3 = 0x0bbc87b0 &#60;UIView: 0xb988f00; frame = (0 0; 320 460); autoresize = RM+BM; layer = &#60;CALayer: 0xb988f60&#62;&#62; &#124; &#60;UIImageView: 0xb988f90; [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Dans la zone de Debug, il suffit d&rsquo;utiliser <strong>recursiveDescription</strong> :</p>
<pre class="lang:objc decode:true">po [self.view recursiveDescription]</pre>
<p>Et on obtient la description de toutes les UIView de l&rsquo;arborescence de la vue concernée :</p>
<pre class="lang:objc decode:true ">(lldb) po [self.view recursiveDescription]
(id) $3 = 0x0bbc87b0 &lt;UIView: 0xb988f00; frame = (0 0; 320 460); autoresize = RM+BM; layer = &lt;CALayer: 0xb988f60&gt;&gt;
   | &lt;UIImageView: 0xb988f90; frame = (0 -12; 320 460); autoresize = RM+BM; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb988ff0&gt;&gt;
   | &lt;UIButton: 0xb981370; frame = (20 355; 44 55); opaque = NO; autoresize = RM+BM; layer = &lt;CALayer: 0xb981430&gt;&gt;
   |    | &lt;UIImageView: 0xb984800; frame = (0 0; 44 55); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb984860&gt;&gt;
   |    | &lt;UIButtonLabel: 0xb9832e0; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb983380&gt;&gt;
   | &lt;UIButton: 0xb9865a0; frame = (77 355; 50 54); opaque = NO; autoresize = RM+BM; layer = &lt;CALayer: 0xb986660&gt;&gt;
   |    | &lt;UIImageView: 0xb984980; frame = (0 0; 50 54); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb9849e0&gt;&gt;
   |    | &lt;UIButtonLabel: 0xb988440; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb9884e0&gt;&gt;
   | &lt;UIButton: 0xb983ce0; frame = (238 332; 54 78); opaque = NO; autoresize = RM+BM; layer = &lt;CALayer: 0xb983da0&gt;&gt;
   |    | &lt;UIImageView: 0xb97b580; frame = (0 0; 54 78); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb97b5e0&gt;&gt;
   |    | &lt;UIButtonLabel: 0xb985b80; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb985c20&gt;&gt;
   | &lt;UIButton: 0xb97c2a0; frame = (9 245; 109 82); opaque = NO; autoresize = RM+BM; layer = &lt;CALayer: 0xb97c360&gt;&gt;
   |    | &lt;UIImageView: 0xb97f630; frame = (0 0; 109 82); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb97f690&gt;&gt;
   |    | &lt;UIButtonLabel: 0xb97e120; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb97e1c0&gt;&gt;
   | &lt;UIButton: 0xb97eb20; frame = (147 359; 40 50); opaque = NO; autoresize = RM+BM; layer = &lt;CALayer: 0xb97ebe0&gt;&gt;
   |    | &lt;UIImageView: 0xb97f7b0; frame = (0 0; 40 50); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb97f810&gt;&gt;
   |    | &lt;UIButtonLabel: 0xb980950; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb9809f0&gt;&gt;
   | &lt;UIImageView: 0xb989910; frame = (0 0; 320 47); autoresize = RM+BM; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb989970&gt;&gt;
   | &lt;UIImageView: 0xb98b1a0; frame = (0 428; 320 32); autoresize = RM+BM; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb98ab80&gt;&gt;
   | &lt;UIButton: 0xb979710; frame = (9 245; 109 82); hidden = YES; opaque = NO; autoresize = RM+BM; layer = &lt;CALayer: 0xb974d70&gt;&gt;
   |    | &lt;UIImageView: 0xb97cdb0; frame = (0 0; 109 82); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb97ce10&gt;&gt;
   |    | &lt;UIButtonLabel: 0xb97bfa0; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb97c040&gt;&gt;
   | &lt;UIButton: 0xb975950; frame = (100 265; 89 61); opaque = NO; autoresize = RM+BM; layer = &lt;CALayer: 0xb975a60&gt;&gt;
   |    | &lt;UIImageView: 0xb97cf30; frame = (0 0; 89 61); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb97cf90&gt;&gt;
   |    | &lt;UIButtonLabel: 0xb978950; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = &lt;CALayer: 0xb978a40&gt;&gt;</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freejack.fr/obtenir-description-arborescence-uiview/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personnaliser la UITabBar</title>
		<link>http://www.freejack.fr/personnaliser-la-uitabbar</link>
		<comments>http://www.freejack.fr/personnaliser-la-uitabbar#respond</comments>
		<pubDate>Fri, 24 Aug 2012 20:37:40 +0000</pubDate>
		<dc:creator><![CDATA[Freejack]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[UITabBar]]></category>
		<category><![CDATA[UITabBarItem]]></category>

		<guid isPermaLink="false">http://www.freejack.fr/?p=1414</guid>
		<description><![CDATA[Pour définir les images de chaque UITabBarItem, dans leur état sélectionné et déselectionné : UITabBarItem *item0 = [self.tabBar.items objectAtIndex:0]; UITabBarItem *item1 = [self.tabBar.items objectAtIndex:1]; ... item0.title = @"Disciplinas"; item1.title = @"Notas"; ... [item0 setFinishedSelectedImage:[UIImage imageNamed:@"disciplinas-active"] withFinishedUnselectedImage:[UIImage imageNamed:@"disciplinas-inactive"]]; [item1 setFinishedSelectedImage:[UIImage imageNamed:@"notas-active"] withFinishedUnselectedImage:[UIImage imageNamed:@"notas-inactive"]]; ... Pour changer l&#8217;apparence du texte apparaissant sous l&#8217;icône, par exemple sa police [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Pour définir les images de chaque <strong>UITabBarItem</strong>, dans leur état sélectionné et déselectionné :</p>
<pre class="lang:objc decode:true">UITabBarItem *item0 = [self.tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [self.tabBar.items objectAtIndex:1];
...

item0.title = @"Disciplinas";
item1.title = @"Notas";
...

[item0 setFinishedSelectedImage:[UIImage imageNamed:@"disciplinas-active"] withFinishedUnselectedImage:[UIImage imageNamed:@"disciplinas-inactive"]];
[item1 setFinishedSelectedImage:[UIImage imageNamed:@"notas-active"] withFinishedUnselectedImage:[UIImage imageNamed:@"notas-inactive"]];
...</pre>
<p>Pour changer l&rsquo;apparence du texte apparaissant sous l&rsquo;icône, par exemple sa police et sa couleur, on peut utiliser <strong>UIAppearance</strong>. Attention, cela affectera toutes les <strong>UITabBar</strong> de l&rsquo;application :</p>
<pre class="lang:objc decode:true">[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                           [UIColor colorWithRed:247./255. green:228./255. blue:211./255. alpha:1.], UITextAttributeTextColor,
                                                           [UIFont fontWithName:@"MyFontName" size:11.0], UITextAttributeFont, nil]
                                                 forState:UIControlStateNormal];

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                           [UIColor colorWithRed:67./255. green:33./255. blue:5./255. alpha:1.], UITextAttributeTextColor,
                                                           [UIFont fontWithName:@"MyFontName" size:11.0], UITextAttributeFont, nil]
                                                 forState:UIControlStateSelected];</pre>
<p>Voilà le résultat obtenu :</p>
<p><a href="http://www.freejack.fr/wp-content/uploads/2012/08/Captura-de-Tela-2012-08-24-às-16.27.55.png"><img class="alignleft size-full wp-image-1421" title="TaBarWithIndicator" src="http://www.freejack.fr/wp-content/uploads/2012/08/Captura-de-Tela-2012-08-24-às-16.27.55.png" alt="" width="319" height="48" srcset="http://www.freejack.fr/wp-content/uploads/2012/08/Captura-de-Tela-2012-08-24-às-16.27.55.png 319w, http://www.freejack.fr/wp-content/uploads/2012/08/Captura-de-Tela-2012-08-24-às-16.27.55-300x45.png 300w" sizes="(max-width: 319px) 100vw, 319px" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Attention, pour l&rsquo;état sélectionné il faut bien utiliser <strong>UIControlStateSelected</strong>. Si vous utilisez <strong>UIControlStateHighlighted</strong>, l&rsquo;erreur suivante apparaitra dans la console :</p>
<pre class="lang:objc decode:true ">button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted and UIControlStateDisabled. state = 1 is interpreted as UIControlStateHighlighted.</pre>
<p>On note qu&rsquo;un effet de brillance est toujours présent sur le <strong>UITabBarItem</strong> sélectionné.</p>
<p>Afin de personnaliser cet « indicateur de sélection », on peut utiliser la méthode</p>
<pre class="lang:objc decode:true">[[UITabBar appearance] setSelectionIndicatorImage:indicatorImage];

// En revanche si l'on souhaite se passer de cet indicateur, il n'est pas
// possible d'utiliser nil avec la précédente méthode

[[UITabBar appearance] setSelectionIndicatorImage:nil]; // ne fonctionne pas !

// En revanche, on peut utiliser une image transparente, cela fonctionne !

[[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"transparent.png"]];</pre>
<p>Ci-dessous le résultat sans l&rsquo;effet de surbrillance sur le <strong>UITabBarItem</strong> sélectionné :</p>
<p><a href="http://www.freejack.fr/wp-content/uploads/2012/08/Captura-de-Tela-2012-08-24-às-16.48.23.png"><img class="alignleft size-full wp-image-1422" title="TabBarItemWithoutIndicator" src="http://www.freejack.fr/wp-content/uploads/2012/08/Captura-de-Tela-2012-08-24-às-16.48.23.png" alt="" width="320" height="49" srcset="http://www.freejack.fr/wp-content/uploads/2012/08/Captura-de-Tela-2012-08-24-às-16.48.23.png 320w, http://www.freejack.fr/wp-content/uploads/2012/08/Captura-de-Tela-2012-08-24-às-16.48.23-300x45.png 300w" sizes="(max-width: 320px) 100vw, 320px" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.freejack.fr/personnaliser-la-uitabbar/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Afficher un clavier sans UITextField</title>
		<link>http://www.freejack.fr/afficher-un-clavier-sans-uitextfield</link>
		<comments>http://www.freejack.fr/afficher-un-clavier-sans-uitextfield#respond</comments>
		<pubDate>Thu, 12 Jan 2012 19:09:20 +0000</pubDate>
		<dc:creator><![CDATA[Freejack]]></dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.freejack.fr/?p=1354</guid>
		<description><![CDATA[On peut avoir besoin d&#8217;afficher le clavier iOS sans pour autant vouloir utiliser un UITextField ou une UITextView. Pour cela il suffit d&#8217;utiliser le protocol UIKeyInput dans l&#8217;interface du UIViewController : MyViewController : UIViewController&#60;UIKeyInput&#62; Dans l&#8217;implémentation du UIViewController, il est désormais possible d&#8217;utiliser les méthodes suivantes : - (BOOL)hasText; - (void)insertText:(NSString *)text; - (void)deleteBackward; Pour [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>On peut avoir besoin d&rsquo;afficher le clavier iOS sans pour autant vouloir utiliser un UITextField ou une UITextView.</p>
<p>Pour cela il suffit d&rsquo;utiliser le protocol <strong>UIKeyInput</strong> dans l&rsquo;interface du UIViewController :</p>
<pre class="striped:false marking:false nums:false nums-toggle:false lang:objc decode:true crayon-selected">MyViewController : UIViewController&lt;UIKeyInput&gt;</pre>
<p>Dans l&rsquo;implémentation du UIViewController, il est désormais possible d&rsquo;utiliser les méthodes suivantes :</p>
<pre>- (BOOL)hasText;
- (void)insertText:(NSString *)text;
- (void)deleteBackward;</pre>
<p>Pour afficher le clavier, ne pas oublier d&rsquo;implémenter :</p>
<pre>- (BOOL)canBecomeFirstResponder {
     return YES;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.freejack.fr/afficher-un-clavier-sans-uitextfield/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Supprimer les balises HTML dans une NSString</title>
		<link>http://www.freejack.fr/supprimer-les-balises-html-dans-une-nsstring</link>
		<comments>http://www.freejack.fr/supprimer-les-balises-html-dans-une-nsstring#respond</comments>
		<pubDate>Fri, 26 Nov 2010 11:52:55 +0000</pubDate>
		<dc:creator><![CDATA[Freejack]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[NSString]]></category>

		<guid isPermaLink="false">http://www.freejack.fr/?p=931</guid>
		<description><![CDATA[Dans un flux RSS, je récupère un article au format HTML et je souhaite l&#8217;afficher sans tenir compte des balises HTML. Pour supprimer les balises HTML (tags) d&#8217;une chaine de caractère NSString, j&#8217;ai intégré la solution dans une « extension » de la classe NSString. Tout d&#8217;abord le fichier NSString-Extensions.h @interface NSString(Extensions) - (NSString *)removeHTMLtags; @end Puis le [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Dans un <em>flux RSS</em>, je récupère un article au format <strong>HTML</strong> et je souhaite l&rsquo;afficher sans tenir compte des <strong>balises HTML</strong>. Pour supprimer les balises <strong>HTML</strong> (tags) d&rsquo;une chaine de caractère <strong>NSString</strong>, j&rsquo;ai intégré la solution dans une « extension » de la classe <strong>NSString</strong>.</p>
<p>Tout d&rsquo;abord le fichier <strong><em>NSString-Extensions.h</em></strong></p>
<pre>@interface NSString(Extensions)
- (NSString *)removeHTMLtags;
@end</pre>
<p style="text-align: justify;">Puis le fichier <strong><em>NSString-Extensions.m</em></strong> qui contient la méthode <strong>removeHTMLtags</strong> qui permet de<strong> supprimer les balises HTML d&rsquo;une NSString</strong>.</p>
<pre class="lang:objc decode:true">#import "NSString-Extensions.h"

@implementation NSString(HTML)

- (NSString *)removeHTMLtags {

NSString *text = nil;
NSString* html = self;

NSScanner *theScanner = [NSScanner scannerWithString:html];

while ([theScanner isAtEnd] == NO) {

        [theScanner scanUpToString:@"&lt;" intoString:NULL] ;
        [theScanner scanUpToString:@"&gt;" intoString:&amp;text] ;

        html = [ html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@&gt;", text] withString:@" "];
    }
    return html;
}
@end</pre>
<p>Source : http://rudis.net/content/2009/01/21/flatten-html-content-ie-strip-tags-cocoaobjective-c</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freejack.fr/supprimer-les-balises-html-dans-une-nsstring/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>URLWithString retourne nil</title>
		<link>http://www.freejack.fr/urlwithstring-retourne-nil</link>
		<comments>http://www.freejack.fr/urlwithstring-retourne-nil#respond</comments>
		<pubDate>Fri, 19 Nov 2010 19:51:29 +0000</pubDate>
		<dc:creator><![CDATA[Freejack]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[NSURL]]></category>

		<guid isPermaLink="false">http://www.freejack.fr/?p=903</guid>
		<description><![CDATA[En cherchant à créer un NSURL à partir d&#8217;un fichier local, j&#8217;ai utilisé la méthode URLWithString de NSURL comme ceci : NSURL *baseURL = [NSURL URLWithString:url]; URLWithString retournait nil&#8230; Le problème venait du chemin local qui contenait un espace, ce chemin était du type : /Library/Application Support/iPhone Simulator/4.0.2/Applications/516C.. L&#8217;espace entre iPhone et Simulator n&#8217;était pas [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">En cherchant à créer un <strong>NSURL</strong> à partir d&rsquo;un fichier local, j&rsquo;ai utilisé la méthode <strong>URLWithString</strong> de <strong>NSURL</strong> comme ceci :</p>
<pre>NSURL *baseURL = [NSURL URLWithString:url];</pre>
<p style="text-align: justify;"><strong>URLWithString</strong> retournait <strong><span style="text-decoration: underline;">nil</span></strong>&#8230; Le problème venait du chemin local qui contenait un espace, ce chemin était du type :</p>
<pre>/Library/Application Support/iPhone Simulator/4.0.2/Applications/516C..</pre>
<p style="text-align: justify;">L&rsquo;espace entre <em>iPhone</em> et <em>Simulator</em> n&rsquo;était pas apprécié par <strong>URLWithString</strong>. Pour contourner le problème, il suffit de supprimer du chemin tous les caractères non-ASCII  :</p>
<p style="text-align: justify;">
<pre>NSURL *baseURL = [NSURL URLWithString:[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];</pre>
<p>Source : http://stackoverflow.com/questions/1981390/urlwithstring-returns-nil</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freejack.fr/urlwithstring-retourne-nil/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application iPhone rejetée à cause du logo Google Maps</title>
		<link>http://www.freejack.fr/application-iphone-rejetee-a-cause-du-logo-google-maps</link>
		<comments>http://www.freejack.fr/application-iphone-rejetee-a-cause-du-logo-google-maps#respond</comments>
		<pubDate>Sat, 02 Oct 2010 01:36:55 +0000</pubDate>
		<dc:creator><![CDATA[Freejack]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[soumission Apple]]></category>

		<guid isPermaLink="false">http://www.edginho.net/?p=344</guid>
		<description><![CDATA[J&#8217;ai dernièrement soumis une nouvelle application sur l&#8217;App Store. Avant d&#8217;être disponible en vente, une application doit passer par l&#8217;étape d&#8217;Approval c&#8217;est-à-dire de validation. Apple fournit un ensemble de Guidelines à suivre à la lettre si l&#8217;on ne souhaite pas voir son application rejetée. Il y a un paquet de règles à suivre, je les [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">J&rsquo;ai dernièrement soumis une nouvelle application sur l&rsquo;<strong>App Store</strong>. Avant d&rsquo;être disponible en vente, une application doit passer par l&rsquo;étape d&rsquo;<strong>Approval </strong>c&rsquo;est-à-dire de validation.</p>
<p style="text-align: justify;"><strong>Apple </strong>fournit un ensemble de <a title="Guidlines Approval AppStore" href="https://developer.apple.com/appstore/resources/approval/guidelines.html" target="_blank">Guidelines </a>à suivre à la lettre si l&rsquo;on ne souhaite pas voir son application rejetée. Il y a un paquet de règles à suivre, je les ai « globalement » lues mais malheureusement je me suis fait avoir à cause d&rsquo;une erreur que j&rsquo;aurais pu éviter.</p>
<p style="text-align: justify;">Je ne critique pas le principe de soumission d&rsquo;une application, je ne fait que partager mon erreur pour éviter à d&rsquo;autres de faire la même !</p>
<p style="text-align: justify;">
<p style="text-align: justify;">Mon application est passée en <strong>Rejected </strong>parce que le <strong>logo de Google</strong> était caché sur cette application où j&rsquo;utilise <strong>Google Maps</strong>&#8230;</p>
<p style="text-align: center;"><a href="http://www.freejack.fr/wp-content/uploads/2010/10/google-maps-app-rejected.jpg"><img class="aligncenter size-full wp-image-768" title="google-maps-app-rejected" src="http://www.freejack.fr/wp-content/uploads/2010/10/google-maps-app-rejected.jpg" alt="" width="518" height="154" srcset="http://www.freejack.fr/wp-content/uploads/2010/10/google-maps-app-rejected.jpg 640w, http://www.freejack.fr/wp-content/uploads/2010/10/google-maps-app-rejected-300x89.jpg 300w" sizes="(max-width: 518px) 100vw, 518px" /></a></p>
<p style="text-align: justify;">J&rsquo;ai donc reçu l&rsquo;e-mail suivant de la part d&rsquo;<strong>Apple </strong>:</p>
<blockquote style="text-align: justify;"><p>We’ve completed the review of your application, but because the  application displays images provided by Google Maps without the  corresponding Google branding, as required under section 8.6 of the App  Store Review Guidelines &lt;<a href="https://developer.apple.com/appstore/resources/approval/guidelines.html" target="_blank">https://developer.apple.com/appstore/resources/approval/guidelines.html</a>&gt;, we cannot post this version to the App Store.</p>
<p>Google requires their logo and branding to be retained on all their map  images.  We hope you’ll consider revising and resubmitting your  application.</p></blockquote>
<p style="text-align: justify;">C&rsquo;est une erreur stupide qui fait perdre du temps puisqu&rsquo;il faut alors :</p>
<ul style="text-align: justify;">
<li>corriger le problème (= rendre visible le nom de Google).</li>
<li>builder le projet pour  obtenir le fichier d&rsquo;application .app</li>
<li>et surtout, l&rsquo;étape la plus longue, refaire une soumission de l&rsquo;application : encore quelques journées (voir semaines) de perdues&#8230;</li>
</ul>
<p style="text-align: justify;">A bon entendeur, salut !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freejack.fr/application-iphone-rejetee-a-cause-du-logo-google-maps/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiler pour iOS 3.1.3 avec Xcode 3.2.3</title>
		<link>http://www.freejack.fr/compiler-pour-ios-3-1-3-avec-xcode-3-2-3</link>
		<comments>http://www.freejack.fr/compiler-pour-ios-3-1-3-avec-xcode-3-2-3#respond</comments>
		<pubDate>Sat, 11 Sep 2010 23:34:38 +0000</pubDate>
		<dc:creator><![CDATA[Freejack]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://www.edginho.net/?p=331</guid>
		<description><![CDATA[Je ne suis pas pressé de passer à l&#8217; OS 4 sur mon iPhone 3G&#8230; apparemment ça rame pas mal ! En revanche je me suis mis à jour avec la dernière version de Xcode 3.2.3 et l&#8217;iphone SDK 4.0.2. Après avoir installé la version de Xcode 3.2.3, il m&#8217;était impossible de compiler en utilisant le [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Je ne suis pas pressé de passer à l&rsquo; OS 4 sur mon iPhone 3G&#8230; apparemment ça rame pas mal ! En revanche je me suis mis à jour avec la dernière version de <strong>Xcode 3.2.3</strong> et l&rsquo;iphone <strong>SDK 4.0.2</strong>.</p>
<p><img class="alignleft size-full wp-image-347" style="margin-right: 10px;" title="Compilationpour iOS4" src="http://www.edginho.net/wp-content/uploads/2010/09/Capture-d’écran-2010-09-11-à-18.25.54.png" alt="" width="344" height="54" /></p>
<p style="text-align: justify;">Après avoir installé la version de <strong>Xcode 3.2.3</strong>, il m&rsquo;était impossible de compiler en utilisant le SDK 3.1.3, en effet, ce SDK n&rsquo;apparait plus comme avant dans la liste des SDK disponibles à la compilation.</p>
<p style="text-align: justify;">Quand je compile en utilisant le SDK 4 et que je veux essayer sur mon iPhone possédant l&rsquo; iOS 3.1.3, évidemment, ça ne fonctionne pas&#8230;  En effet, vu les problèmes liés à l&rsquo;utilisation de l&rsquo;OS 4 sur les iPhones comme le 3G, il y a fort à parier que les possesseurs d&rsquo;iPhone « non 4G » seront bien content de trouver des applis qui ne nécessitent pas l&rsquo;installation de l&rsquo;iOS4. Perso, mes applications n&rsquo;ont pas besoin des fonctionnalités du SDK 4 et des cibles en 3.1.3 me conviennent parfaitement&#8230;</p>
<p style="text-align: justify;"><strong>Alors comment compiler pour iOS 3.1.3 avec Xcode 3.2.3 ?</strong></p>
<p style="text-align: justify;">En fait, ce n&rsquo;est pas possible mais on peut compiler avec le SDK 4 et rendre l&rsquo;appli compatible pour des iPhones ayant par exemple l&rsquo;OS 3.1.3.</p>
<p style="text-align: justify;"><a href="http://www.edginho.net/wp-content/uploads/2010/09/Capture-d’écran-2010-09-11-à-18.24.50.png"><img class="alignleft size-full wp-image-348" style="margin-right: 10px;" title="Deployment Target paramétré à 3.1.3 " src="http://www.edginho.net/wp-content/uploads/2010/09/Capture-d’écran-2010-09-11-à-18.24.50.png" alt="" width="356" height="57" /></a>Pour cela, il suffit de compiler pour l&rsquo;iOS 4 mais en précisant l&rsquo;iPhone OS 3.1.3 comme <strong>Deployment Target</strong>. Pour cela, <strong>Project</strong> &gt; <strong>Edit Active Target</strong> puis mettez la valeur<strong> iPhone OS 3.1.3</strong> pour le setting <strong><span style="text-decoration: underline;">iPhone OS Deployment Target</span></strong>.</p>
<p style="text-align: justify;">L&rsquo;application fonctionnera sur des iPhones équipés de l&rsquo;OS 3.1.3 ou de l&rsquo;OS 4.</p>
<p style="text-align: justify;"><a href="http://stackoverflow.com/questions/3099553/compiling-for-ios-3-1-3-using-xcode-3-2-3-and-ios-4-that-came-with-it" target="_blank">Source  sur stackoverflow.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.freejack.fr/compiler-pour-ios-3-1-3-avec-xcode-3-2-3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple annonce le App Store Volume Purchase Program</title>
		<link>http://www.freejack.fr/apple-annonce-app-store-volume-purchase-program</link>
		<comments>http://www.freejack.fr/apple-annonce-app-store-volume-purchase-program#respond</comments>
		<pubDate>Tue, 10 Aug 2010 09:22:27 +0000</pubDate>
		<dc:creator><![CDATA[Freejack]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[In-App Purchases]]></category>

		<guid isPermaLink="false">http://www.edginho.net/?p=302</guid>
		<description><![CDATA[Avec ce nouveau programme de vente, les écoles et universités peuvent désormais acheter un important volume de vos applications et vous pouvez leur faire un prix de gros afin de rendre l&#8217;offre intéressante. Ce programme va tout d&#8217;abord permettre de simplifier l&#8217;achat lorsqu&#8217;une école souhaite acheter un grand nombre d&#8217;applications. Il sera également possible de [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Avec ce <strong>nouveau programme de vente</strong>, les écoles et universités peuvent désormais acheter un <em>important volume</em> de vos applications et vous pouvez leur faire un <em>prix de gros</em> afin de rendre l&rsquo;offre intéressante.</p>
<p style="text-align: justify;">Ce programme va tout d&rsquo;abord permettre de <span style="text-decoration: underline;">simplifier l&rsquo;achat</span> lorsqu&rsquo;une école souhaite acheter un grand nombre d&rsquo;applications.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">Il sera également possible de faire une <span style="text-decoration: underline;">réduction du prix de vente <strong>jusqu&rsquo;à 50%</strong></span> et ce pour un achat d&rsquo;<strong>au moins 20 applications</strong>. Cette <em>ristourne </em>est applicable à toutes vos applications ou seulement celles de votre choix.</p>
<p style="text-align: justify;">Petit bémol, ce programme n&rsquo;est actuellement valable <em>que pour les écoles des États-Unis</em>&#8230;<br />
Ce n&rsquo;est que mon avis mais on peut imaginer que si ce programme est intéressant pour Apple, il sera probablement étendu aux autres pays.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freejack.fr/apple-annonce-app-store-volume-purchase-program/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problème de connexion à iTunes Connect</title>
		<link>http://www.freejack.fr/probleme-de-connexion-a-itunes-connect</link>
		<comments>http://www.freejack.fr/probleme-de-connexion-a-itunes-connect#respond</comments>
		<pubDate>Mon, 09 Aug 2010 10:11:51 +0000</pubDate>
		<dc:creator><![CDATA[Freejack]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[iTunes Connect]]></category>

		<guid isPermaLink="false">http://www.edginho.net/?p=291</guid>
		<description><![CDATA[Le site  iTunes Connect à l&#8217;adresse https://itunesconnect.apple.com fournit un ensemble d&#8217;outils qui permettent de gérer vos applications sur l&#8217;AppStore. Il permet notamment d&#8217;accéder à la rubrique Sales And Trades qui liste les ventes réalisées par toutes vos applications. Depuis le 7 août, je n&#8217;arrivais plus du tout à accéder à la partie Sales And Trades&#8230; [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Le site  <strong>iTunes Connect</strong> à l&rsquo;adresse <a title="iTunes Connect" href="https://itunesconnect.apple.com" target="_blank">https://itunesconnect.apple.com</a> fournit un ensemble d&rsquo;outils qui permettent de gérer vos applications sur l&rsquo;<strong>AppStore</strong>. Il permet notamment d&rsquo;accéder à la rubrique <strong>Sales And Trades</strong> qui liste les ventes réalisées par toutes vos applications.</p>
<p style="text-align: justify;">Depuis le 7 août, je n&rsquo;arrivais plus du tout à accéder à la partie <strong>Sales And Trades</strong>&#8230; La connexion à <strong>iTunes Connect</strong> fonctionnait mais impossible de voir le nombre de ventes en cliquant sur <strong>Sales And Trades</strong> : le navigateur rame pendant un moment puis annonce un problème de connexion au serveur à l&rsquo;adresse <em>reportingitc.apple.com.</em></p>
<p>La solution à ce problème d&rsquo;accès à la page <strong>Transaction Reports</strong> sur<strong> iTunes Connect</strong> est très simple : arrêter de passer via <a title="iTunes Connect" href="https://itunesconnect.apple.com/" target="_blank">https://itunesconnect.apple.com</a> mais utiliser l&rsquo;adresse <a title="Transaction Reports" href="https://itts.apple.com" target="_blank">https://itts.apple.com</a> qui arrive <span style="text-decoration: underline;">directement sur la page <strong>Transaction Reports</strong></span>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freejack.fr/probleme-de-connexion-a-itunes-connect/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>StatusBar caché pendant le Splash screen</title>
		<link>http://www.freejack.fr/statusbar-cache-pendant-le-splash-screen</link>
		<comments>http://www.freejack.fr/statusbar-cache-pendant-le-splash-screen#respond</comments>
		<pubDate>Tue, 22 Dec 2009 23:48:57 +0000</pubDate>
		<dc:creator><![CDATA[Freejack]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[StatusBar]]></category>

		<guid isPermaLink="false">http://www.edginho.net/?p=106</guid>
		<description><![CDATA[Pour cacher la Status Bar dans votre application, il suffit d&#8217;utiliser la ligne suivante : [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; Pour cacher la StatusBar pendant le splash screen, c&#8217;est à dire pendant l&#8217;apparition de Default.png cette ligne là n&#8217;est pas suffisante, il faut également mettre UIStatusBarHidden à YES dans Info.plist.]]></description>
				<content:encoded><![CDATA[<p>Pour cacher la Status Bar dans votre application, il suffit d&rsquo;utiliser la ligne suivante :</p>
<pre>[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];</pre>
<p>Pour cacher la StatusBar pendant le splash screen, c&rsquo;est à dire pendant l&rsquo;apparition de <strong>Default.png</strong> cette ligne là n&rsquo;est pas suffisante, il faut également mettre <strong>UIStatusBarHidden</strong> à YES dans <strong>Info.plist</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freejack.fr/statusbar-cache-pendant-le-splash-screen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
