***P31 FORK FIXES REJECTIONS***

55 views
Skip to first unread message

VMSpot

unread,
Nov 13, 2009, 5:53:40 PM11/13/09
to Three20
I just had 9 apps approved using the P31 fork after previously being
rejected. I just want to confirm it solves Apples issues.

Charles

caseysackett

unread,
Nov 14, 2009, 1:11:56 PM11/14/09
to Three20
I can 2nd this. My app BabyBump also uses the P31 fork and was
approved late yesterday. Thanks uprise78.

Dirk Holtwick

unread,
Nov 18, 2009, 1:49:23 AM11/18/09
to Three20
NO, IT DOES NOT!

We received a rejection from Apple with the following text. It is
already the second rejection, I will now remove Three20 completely
since we are only using the URL loading stuff and don't even touch the
UIViewController etc. I do not blame Three20 for it, I blame Apple!
Joe, I can totally understand your frustration, must be similar to
mine ;)

Maybe developers should do something like a coordinated 'OFF-DAY",
kind of a strike where developer remove their apps from sale for one
day to show Apple that we developers do not agree with being dictated!
Free programming in my opinion is a form of free speech in these days,
where content and algorithms get closer to each other. German media
are already comparing the Apple review process with former German
democratic republic. I love the Apple products and I think Apple
should listen to Joe's word which are a good compromise between
control and freedom.

Here is the rejection text:

Upon review of your application, XXX cannot be posted to the App Store
due to the usage of private API. Usage of such non-public API, as
outlined in the iPhone Developer Program License Agreement section
3.3.1, is prohibited:

"3.3.1 Applications may only use Documented APIs in the manner
prescribed by Apple and must not use or call any private APIs."

The non-public API that is included in your application comes from the
following private Apple frameworks - UITouch._locationInWindow
UITouch._phase, UITouch._previousLocationInWindow, UITouch._tapCount,
UITouch._timestamp, UITouch._touchFlags, UITouch._view
UITouch._window .

Thanks for the work on Three20 altogether,

Dirk

Sadat Rahman

unread,
Nov 18, 2009, 1:59:01 AM11/18/09
to thr...@googlegroups.com

Take a good look at the P31 fork on Github by Mike D (aka "uprise78"), and tell us the parts where private APIs are being used.
You obviously didn't use the P31 fork by the look of things.

Dirk Holtwick

unread,
Nov 18, 2009, 2:16:05 AM11/18/09
to Three20
Of course I used the uprise78 fork! Why should I write into this
thread if I didn"t?

I took the copy frome here: http://github.com/uprise78/three20-P31/commit/c1aafd341b739a3824016e2315847f4b6bba249f

I did it like this: git clone git://github.com/uprise78/three20-P31.git
uprise78

I find occurrences of the mentioned private API things in
UIViewAdditions.m from line 49 to 66. Here is an extract of the code:

@implementation UITouch (TTCategory)

- (id)initInView:(UIView *)view location:(CGPoint)location {
if (self = [super init]) {
_tapCount = 1;
_locationInWindow = location;
_previousLocationInWindow = location;

UIView *target = [view.window hitTest:_locationInWindow
withEvent:nil];
_view = [target retain];
_window = [view.window retain];
_phase = UITouchPhaseBegan;
_touchFlags._firstTouchForView = 1;
_touchFlags._isTap = 1;
_timestamp = [NSDate timeIntervalSinceReferenceDate];
}
return self;
}

- (void)changeToPhase:(UITouchPhase)phase {
_phase = phase;
_timestamp = [NSDate timeIntervalSinceReferenceDate];
}

@end

Dirk

Sadat Rahman

unread,
Nov 18, 2009, 2:29:16 AM11/18/09
to thr...@googlegroups.com

http://github.com/uprise78/three20-P31/blob/master/src/UIViewAdditions.m

Did you notice the #ifdef DEBUG conditional compilation directive on line 3 till line 96?
If you used the P31 fork and your app was rejected, you obviously haven't configured your project settings correctly for app store distribution.


On 18/11/2009, at 6:16 PM, Dirk Holtwick wrote:

> Of course I used the uprise78 fork! Why should I write into this
> thread if I didn"t?

-snip-

David Morford

unread,
Nov 18, 2009, 2:34:53 AM11/18/09
to thr...@googlegroups.com
Dig around in the classe of application, any libraries you are using and their Xcode projects. You'll likely find:

- A random #define DEBUG statement
or
- GCC_PREPROCESSOR_DEFINITIONS = DEBUG defined, either on the Project or Target for all build configurations or in an xcconfig file (if you are using them...)


Seriously folks... delete those lines of code.

David
> --
>
> You received this message because you are subscribed to the Google Groups "Three20" group.
> To post to this group, send email to thr...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/three20?hl=.
>
>

Dirk Holtwick

unread,
Nov 18, 2009, 2:47:53 AM11/18/09
to Three20
Ok, you are right. I'm sorry for the confusion. I used this code for
the submission which is a little older:

http://github.com/uprise78/three20-P31/commit/8183ae25528bbc575ab41a41227756f06c166240

I removed everything that has been between DEBUG code and removed
other stuff I found.

Anyway, instead of #ifdef DEBUG you should use something like #ifdef
TTDEBUG or TTUNSAFE. DEBUG is so popular!

Although my code seemed to have those private stuff in it, I will not
redraw my statement about Apple's arbitrariness. I have at least one
other app in the AppStore which uses the same code basis and wasn't
rejected. I still don't see the point why it takes several months to
get an app into the store? Why don't they check this private API stuff
on upload? Seems that they have a tool for it but they run it two
weeks after upload. For some projects time is money and it is
impossible to build reliable businesses on iPhone apps if you have to
be afraid to run into such troubles.

Thanks for clarifying

Dirk


On Nov 18, 8:34 am, David Morford <davidmorf...@gmail.com> wrote:
> Dig around in the classe of application, any libraries you are using and their Xcode projects. You'll likely find:
>
> - A random #define DEBUG statement
> or
> - GCC_PREPROCESSOR_DEFINITIONS = DEBUG defined, either on the Project or Target for all build configurations or in an xcconfig file (if you are using them...)
>
> Seriously folks... delete those lines of code.
>
> David
>
> On Nov 17, 2009, at 11:16 PM, Dirk Holtwick wrote:
>
>
>
> > Of course I used the uprise78 fork! Why should I write into this
> > thread if I didn"t?
>
> > I took the copy frome here:http://github.com/uprise78/three20-P31/commit/c1aafd341b739a3824016e2...

Eelco Lempsink

unread,
Nov 18, 2009, 7:16:20 AM11/18/09
to thr...@googlegroups.com
On 18 nov 2009, at 08:47, Dirk Holtwick wrote:
> Anyway, instead of #ifdef DEBUG you should use something like #ifdef
> TTDEBUG or TTUNSAFE. DEBUG is so popular!

Uh... but not for _App_Store_ submissions, I hope?

--
Regards,

Eelco Lempsink

saidev

unread,
Dec 9, 2009, 10:43:30 PM12/9/09
to Three20
We just rejected using p13, anyone else got this message?

The following non-public APIs are included in your application:
lineHeight
screenY

Regards

Jeff Verkoeyen

unread,
Dec 9, 2009, 10:45:22 PM12/9/09
to thr...@googlegroups.com, Three20
This is getting ridiculous. We'll add screenY to our deprecated list
of methods I guess.

Sent from my iPhone
> --
>
> You received this message because you are subscribed to the Google
> Groups "Three20" group.
> To post to this group, send email to thr...@googlegroups.com.
> To unsubscribe from this group, send email to three20+u...@googlegroups.com
> .
> For more options, visit this group at http://groups.google.com/group/three20?hl=en
> .
>
>

Leonardo Lobato

unread,
Dec 10, 2009, 6:58:03 AM12/10/09
to Three20
So, if I refactor the code renaming those methods to something else,
like ttLineHeight and ttScreenY, I should be safe?

lyonanderson

unread,
Dec 11, 2009, 12:20:49 PM12/11/09
to Three20
I just Erica's APICheck tool on our three20 based application and this
is the report I got from it:

Examining 152 class methods, 2038 instance methods, and 342 functions

Potential public framework issues:
[AddressBookUI]initialize override via AudioToolbox
ALERT: -cancel: matches framework AddressBookUI.
[AddressBookUI]description override via AudioToolbox
[AddressBookUI]identifier override via AddressBook
[AddressBookUI]label override via AddressBook
[AddressBookUI]mailComposeController:didFinishWithResult:error:
override via MessageUI
ALERT: -messageFont matches framework AddressBookUI.
[AddressBookUI]name override via AddressBook
[AddressBookUI]numberOfSectionsInTableView: override via CoreData
[AddressBookUI]path override via AudioToolbox
ALERT: -performDefaultAction matches framework AddressBookUI.
[AddressBookUI]reload override via MediaPlayer
[AddressBookUI]resume override via AVFoundation
[AddressBookUI]save override via AddressBook
ALERT: -saveState matches framework AddressBookUI.
[AddressBookUI]search override via CFNetwork
[AddressBookUI]sectionIndexTitlesForTableView: override via CoreData
ALERT: -selectedCell matches framework AddressBookUI.
[AddressBookUI]setHighlighted: override via CoreAudio
[AddressBookUI]setIdentifier: override via CoreAudio
[AddressBookUI]setNeedsLayout override via QuartzCore
[AddressBookUI]setPlaceholder: override via CoreAudio
[AddressBookUI]setShowsCancelButton: override via CoreData
[AddressBookUI]setStringValue: override via CoreAudio
[AddressBookUI]setTableView: override via CoreData
[AddressBookUI]storeType override via CoreData
[AddressBookUI]tableView override via CoreData
[AddressBookUI]tableView:numberOfRowsInSection: override via CoreData
[AddressBookUI]tableView:sectionForSectionIndexTitle:atIndex: override
via CoreData
[AddressBookUI]tableView:titleForHeaderInSection: override via
CoreData
[AddressBookUI]text override via AddressBook
[AddressBookUI]title override via AudioToolbox
ALERT: dyld_stub_binding_helper() matches framework AVFoundation.
[CoreData]connect override via AudioToolbox
[CoreData]index override via AddressBook
[CoreData]initWithURL: override via AVFoundation
[CoreData]object override via AVFoundation
[CoreData]release override via AudioToolbox
[CoreData]reset override via AudioToolbox
[CoreData]retain override via CFNetwork
[CoreData]setURL: override via AddressBookUI
[CoreData]setUserInfo: override via AudioToolbox
[CoreData]timestamp override via AudioToolbox
[CoreData]URL override via AVFoundation
[CoreData]userInfo override via CFNetwork
[CoreFoundation]setSelector: override via AudioToolbox
[CoreFoundation]kCFRunLoopDefaultMode override via AudioToolbox
[CoreLocation]coordinate override via AudioToolbox
[CoreLocation]location override via AudioToolbox
[CoreLocation]x override via AVFoundation
[CoreLocation]y override via AVFoundation
[Foundation]cancel override via AddressBookUI
[Foundation]method override via AVFoundation
[Foundation]position override via AVFoundation
[Foundation]protocol override via AVFoundation
[Foundation]request override via AudioToolbox
[Foundation]response override via CFNetwork
[Foundation]result override via AVFoundation
[Foundation]scheme override via AudioToolbox
[Foundation]setCachePolicy: override via CoreAudio
[Foundation]setSuspended: override via CoreData
[Foundation]NSCocoaErrorDomain override via CoreData
[GameKit]dismiss override via AddressBookUI
[GameKit]icon override via MessageUI
[GameKit]layout override via AudioToolbox
[GameKit]layoutIfNeeded override via QuartzCore
[GameKit]origin override via AudioToolbox
[GameKit]setAnimating: override via CoreData
[GameKit]setIcon: override via AddressBookUI
[GameKit]setResult: override via AddressBookUI
ALERT: -statusView matches framework GameKit.
ALERT: +sharedCache matches framework MapKit.
[MapKit]color override via CoreGraphics
[MapKit]direction override via AudioToolbox
[MapKit]distance override via AudioToolbox
ALERT: -flushRequestQueue matches framework MapKit.
[MapKit]height override via CoreAudio
[MapKit]image override via AddressBook
ALERT: -locationManager:didFailWithError: matches framework MapKit.
[MapKit]mode override via AddressBookUI
[MapKit]offset override via AVFoundation
[MapKit]setBounds: override via AddressBookUI
[MapKit]setEnabled: override via AudioToolbox
[MapKit]setMode: override via AddressBookUI
[MapKit]setOffset: override via AddressBookUI
[MapKit]setPosition: override via AddressBookUI
[MapKit]setScrollEnabled: override via CoreAudio
[MapKit]setSelected: override via AudioToolbox
[MapKit]setSize: override via AddressBookUI
[MapKit]setSubtitle: override via AudioToolbox
[MapKit]setView: override via AddressBookUI
[MapKit]setZoomEnabled: override via CoreAudio
[MapKit]size override via AudioToolbox
[MapKit]view override via AddressBookUI
[MediaPlayer]bounds override via AudioToolbox
[MediaPlayer]display override via AddressBook
ALERT: -fadeOut matches framework MediaPlayer.
[MediaPlayer]item override via AddressBook
[MediaPlayer]items override via AudioToolbox
[MediaPlayer]orientation override via CoreLocation
[MediaPlayer]padding override via AudioToolbox
ALERT: -scrollToTop matches framework MediaPlayer.
[MediaPlayer]selected override via AddressBookUI
[MediaPlayer]setDuration: override via AddressBookUI
[MediaPlayer]setOrientation: override via CoreAudio
ALERT: -setOrientation:animated: matches framework MediaPlayer.
[MediaPlayer]setPadding: override via AudioToolbox
[MediaPlayer]setViewController: override via AddressBookUI
[MessageUI]content override via AudioToolbox
ALERT: -contentType matches framework MessageUI.
ALERT: -send: matches framework MessageUI.
[MessageUI]setContent: override via AudioToolbox
[MessageUI]setIsLoading: override via CoreData
[MessageUI]setSubject: override via AudioToolbox
[MessageUI]setText: override via AddressBookUI
[MessageUI]subject override via CoreGraphics
ALERT: -subjectField matches framework MessageUI.
[QuartzCore]frame override via AudioToolbox
[QuartzCore]level override via AVFoundation
[QuartzCore]mask override via CoreGraphics
[QuartzCore]setMask: override via AddressBookUI
[QuartzCore]setStyle: override via AddressBookUI
[UIKit]shape override via QuartzCore
[UIKit]animating override via MapKit
[UIKit]beginUpdates override via CoreData
ALERT: -childCount matches framework UIKit.
[UIKit]control override via AVFoundation
[UIKit]controller override via AddressBookUI
[UIKit]destination override via AudioToolbox
[UIKit]highlighted override via MapKit
ALERT: -initWithController: matches framework UIKit.
ALERT: -initWithNode: matches framework UIKit.
[UIKit]node override via AudioToolbox
[UIKit]numberOfRowsInSection: override via CoreData
ALERT: -phoneNumber matches framework UIKit.
ALERT: -previousViewController matches framework UIKit.
[UIKit]progress override via CFNetwork
[UIKit]setColor: override via AddressBookUI
[UIKit]setContentInset: override via CoreData
[UIKit]setContentMode: override via CoreAudio
[UIKit]setControl: override via AudioToolbox
[UIKit]setCurrentPage: override via CoreAudio
[UIKit]setDataSource: override via CoreAudio
[UIKit]setDestination: override via CoreAudio
[UIKit]setFont: override via AddressBookUI
[UIKit]setInset: override via AddressBookUI
[UIKit]setItems: override via AddressBookUI
[UIKit]setLineBreakMode: override via CoreAudio
[UIKit]setMinimumFontSize: override via CoreData
[UIKit]setNumberOfLines: override via CoreAudio
[UIKit]setNumberOfPages: override via CoreAudio
[UIKit]setObject: override via AddressBookUI
[UIKit]setOrigin: override via AddressBookUI
[UIKit]setProgress: override via AudioToolbox
[UIKit]setReturnKeyType: override via CoreAudio
[UIKit]setRowHeight: override via CoreData
[UIKit]setShadowColor: override via CoreAudio
[UIKit]setShadowOffset: override via CoreData
[UIKit]setStatusBarStyle: override via CoreAudio
[UIKit]setTabBar: override via AddressBookUI
[UIKit]setTableViewStyle: override via CoreAudio
[UIKit]setTextAlignment: override via CoreAudio
[UIKit]setTextColor: override via CoreData
[UIKit]setTintColor: override via CoreData
[UIKit]setWidth: override via AddressBookUI
[UIKit]setX: override via AddressBook
[UIKit]setY: override via AVFoundation
ALERT: -startTapTimer: matches framework UIKit.
ALERT: -stopAnimation: matches framework UIKit.
[UIKit]userData override via AudioToolbox

After Public Frameworks Scan:
4 whitelisted class methods, 1 blacklisted class methods
322 whitelisted instance methods, 21 blacklisted instance methods
115 whitelisted functions, 1 blacklisted functions

Potential private framework issues:
[ActorKit]queue override via AudioToolbox
[ActorKit]send override via AddressBookUI
[AppSupport]hostname override via CFNetwork
[AppSupport]setHostname: override via AudioToolbox
[Calendar]setUrl: override via AddressBookUI
ALERT: -tomorrow matches private framework CalendarUI.
ALERT: -initWithDelegate: matches private framework Celestial.
[Celestial]setQueue: override via AddressBookUI
ALERT: -initWithText: matches private framework ChatKit.
[ChatKit]refresh override via AVFoundation
[ChatKit]setIsAnimating: override via CoreAudio
[ChatKit]setRecipients: override via CoreAudio
ALERT: -addText: matches private framework CoreTelephony.
[CoreTelephony]setContentType: override via CoreAudio
[DataAccess]body override via CFNetwork
[DataAccess]children override via CoreData
[DataAccess]from override via AVFoundation
ALERT: -httpMethod matches private framework DataAccess.
ALERT: -initWithQuery: matches private framework DataAccess.
[DataAccess]parent override via AddressBookUI
[DataAccess]setBody: override via AddressBookUI
[DataAccess]setFrom: override via AddressBookUI
[DataAccess]setTo: override via AddressBook
[DataAccess]to override via AVFoundation
ALERT: -userAgent matches private framework DataAccess.
ALERT: -addChild: matches private framework DAVKit.
[DAVKit]setUserAgent: override via CoreData
[GMM]parameters override via AudioToolbox
[GMM]radius override via CoreGraphics
[GMM]setAuthor: override via AddressBookUI
[GMM]setDirection: override via CoreData
[GMM]setParameters: override via CoreAudio
[GMM]setRadius: override via AddressBookUI
[GMM]setRequest: override via AudioToolbox
[GMM]setSearchResults: override via CoreAudio
ALERT: -initWithData:encoding:options:error: matches private framework
iCalendar.
ALERT: -initWithData:options:error: matches private framework
iCalendar.
ALERT: +mainQueue matches private framework iTunesStore.
ALERT: -cacheKey matches private framework iTunesStore.
ALERT: -expirationDate matches private framework iTunesStore.
ALERT: -imageURL matches private framework iTunesStore.
ALERT: -initWithIdentifier: matches private framework iTunesStore.
[iTunesStore]kind override via AudioToolbox
[iTunesStore]setButtons: override via AudioToolbox
[iTunesStore]setResponse: override via AudioToolbox
ALERT: -createDataSource matches private framework iTunesStoreUI.
ALERT: -deleteRowAtIndexPath: matches private framework iTunesStoreUI.
ALERT: -loadingView matches private framework iTunesStoreUI.
ALERT: -locationManager:didUpdateToLocation:fromLocation: matches
private framework iTunesStoreUI.
ALERT: -removeItemAtIndexPath: matches private framework
iTunesStoreUI.
[iTunesStoreUI]setSections: override via AudioToolbox
ALERT: -textForFieldAtIndex: matches private framework iTunesStoreUI.
[iWorkImport]bottom override via CoreGraphics
[iWorkImport]cells override via CoreGraphics
ALERT: -columnCount matches private framework iWorkImport.
[iWorkImport]header override via AudioToolbox
[iWorkImport]left override via AudioToolbox
[iWorkImport]right override via AVFoundation
ALERT: -rowCount matches private framework iWorkImport.
[iWorkImport]setBottom: override via AddressBookUI
[iWorkImport]setHeader: override via AddressBookUI
[iWorkImport]setLeft: override via AddressBookUI
[iWorkImport]setRight: override via AddressBookUI
[iWorkImport]setTop: override via AddressBookUI
[iWorkImport]spacing override via CoreGraphics
[iWorkImport]top override via AVFoundation
ALERT: -childAtIndex: matches private framework Message.
[Message]headers override via AudioToolbox
ALERT: -logout matches private framework Message.
ALERT: +elementWithName: matches private framework MobileQuickLook.
ALERT: +elementWithName:stringValue: matches private framework
MobileQuickLook.
ALERT: -insertChild:atIndex: matches private framework
MobileQuickLook.
ALERT: -rootElement matches private framework MobileQuickLook.
ALERT: -rootName matches private framework MobileQuickLook.
[MobileQuickLook]setPointSize: override via CoreData
[MobileQuickLook]setVerticalAlignment: override via CoreData
ALERT: -XMLString matches private framework MobileQuickLook.
ALERT: -attributeForName: matches private framework OfficeImport.
[OfficeImport]color1 override via CoreGraphics
[OfficeImport]color2 override via CoreGraphics
[OfficeImport]highlight override via AddressBookUI
ALERT: -isModified matches private framework OfficeImport.
[OfficeImport]map override via AudioToolbox
[OfficeImport]next override via AudioToolbox
ALERT: -pageHeight matches private framework OfficeImport.
ALERT: -pageWidth matches private framework OfficeImport.
[OfficeImport]setColor1: override via AddressBookUI
[OfficeImport]setColor2: override via AddressBookUI
[OfficeImport]setColumnCount: override via CoreAudio
[OfficeImport]setHeight: override via AddressBookUI
[OfficeImport]setHighlight: override via CoreData
[OfficeImport]setShadow: override via AddressBookUI
[OfficeImport]setSpacing: override via AudioToolbox
[OfficeImport]setTransition: override via CoreAudio
[OfficeImport]shadow override via CoreGraphics
[OfficeImport]shape override via QuartzCore
[OfficeImport]transition override via CoreData
[OfficeImport]URI override via CoreData
ALERT: -initWithPhoto: matches private framework PhotoLibrary.
ALERT: -updatePlaceholder matches private framework PhotoLibrary.
[Preferences]loading override via AudioToolbox
ALERT: -addRequest: matches private framework ProtocolBuffer.
[ProtocolBuffer]requests override via AudioToolbox
[Symbolication]className override via CoreData
[Symbolication]setNext: override via AddressBookUI
[UIAccessibility]element override via AudioToolbox
ALERT: -nextAction matches private framework VoiceServices.
[WebCore]blur override via CoreGraphics
ALERT: -caption matches private framework WebCore.
ALERT: -firstChild matches private framework WebCore.
ALERT: -lastChild matches private framework WebCore.
ALERT: -lineHeight matches private framework WebCore.
ALERT: -localName matches private framework WebCore.
ALERT: -nextSibling matches private framework WebCore.
ALERT: -outerHTML matches private framework WebCore.
ALERT: -outerText matches private framework WebCore.
ALERT: -parentNode matches private framework WebCore.
ALERT: -previousSibling matches private framework WebCore.
ALERT: -screenX matches private framework WebCore.
ALERT: -screenY matches private framework WebCore.
[WebCore]setCaption: override via AddressBookUI
[WebCore]setClassName: override via CoreData
[WebCore]setMargin: override via AddressBookUI
[WebCore]setShape: override via AddressBookUI
ALERT: -contentFrame matches private framework WebKit.
ALERT: -parentFrame matches private framework WebKit.
ALERT: -showStatus: matches private framework WebKit.
ALERT: -failWithError: matches private framework YouTube.

After Private Frameworks Scan:
4 whitelisted class methods, 4 blacklisted class methods
414 whitelisted instance methods, 73 blacklisted instance methods
115 whitelisted functions, 1 blacklisted functions

Potential blacklist items:
+sharedCache
+mainQueue
+elementWithName:
+elementWithName:stringValue:
-cancel:
-messageFont
-performDefaultAction
-saveState
-selectedCell
-statusView
-flushRequestQueue
-locationManager:didFailWithError:
-fadeOut
-scrollToTop
-setOrientation:animated:
-contentType
-send:
-subjectField
-childCount
-initWithController:
-initWithNode:
-phoneNumber
-previousViewController
-startTapTimer:
-stopAnimation:
-tomorrow
-initWithDelegate:
-initWithText:
-addText:
-httpMethod
-initWithQuery:
-userAgent
-addChild:
-initWithData:encoding:options:error:
-initWithData:options:error:
-cacheKey
-expirationDate
-imageURL
-initWithIdentifier:
-createDataSource
-deleteRowAtIndexPath:
-loadingView
-locationManager:didUpdateToLocation:fromLocation:
-removeItemAtIndexPath:
-textForFieldAtIndex:
-columnCount
-rowCount
-childAtIndex:
-logout
-insertChild:atIndex:
-rootElement
-rootName
-XMLString
-attributeForName:
-isModified
-pageHeight
-pageWidth
-initWithPhoto:
-updatePlaceholder
-addRequest:
-nextAction
-caption
-firstChild
-lastChild
-lineHeight
-localName
-nextSibling
-outerHTML
-outerText
-parentNode
-previousSibling
-screenX
-screenY
-contentFrame
-parentFrame
-showStatus:
-failWithError:
dyld_stub_binding_helper()

hiddenwebbrowser

unread,
Dec 14, 2009, 10:19:30 PM12/14/09
to Three20
Just a follow up, renamed lineHeight and screenY for my rejected
application and it got approved under the P13 fork. Thanks again for
providing the p13 fork. :)

Now if someone can tell me why coredata crashes in 3.1.2 but not older
versions of the SDK, it would make my day!


On Dec 9, 9:43 pm, saidev <sai...@gmail.com> wrote:
> We just rejected usingp13, anyone else got this message?

Jeff

unread,
Dec 14, 2009, 10:24:22 PM12/14/09
to Three20
Great to hear, thanks for the followup.

As a heads up, the latest master of facebook/three20 has the most
recent App Store-related fixes (including the renaming of lineHeight
and screenY). Judging by the fact that your app went through OK with
those renames, I think it's safe to say that facebook/three20 is safe
for the App Store again.
Reply all
Reply to author
Forward
Message has been deleted
0 new messages