我们使用客户端的证书和分发配置文件创建了.xcarchive文件代码签名,但是我们需要将.ipa文件发送到我们的客户端,以便他们可以使用Application Loader将应用程序上传到App Store.
在Xcode 4.5中创建.ipa文件的唯一方法是单击Distribute - > Save for Enterprise或Ad-Hoc Deployment,其下面有一个描述"在iOS App Store外部签名和打包应用程序".
如果我们以这种方式保存.ipa文件,是否会导致向应用商店提交任何问题?或者是否有将.xcarchive转换为.ipa的正确方法?
提前致谢!
我已将我的应用程序从Facebook SDK 2升级到3.1.
我在RecordsScreen上有一个Post按钮.如果用户未登录Facebook,则将显示登录页面,如果用户已登录,则将加载另一个笔尖以提示用户输入用于发布到他/她自己的墙壁的消息.
我已经登录了.之后,每次单击"发布"按钮时,有关该应用程序的页面已经过授权,并通过单击"确定"显示是否继续.单击"确定"后,应用程序将终止并从头开始重新启动.每次单击"发布"按钮时,都会再次显示相同的页面.它看起来无法找到有效的会话或令牌丢失.
我在模拟器和设备上测试了这个.同样的事情发生.部署目标是iOS5.1.
我还没输入的唯一参数是iPhone App Store ID.这会影响上述行为吗?
我已经尝试了很多次,但找不到解决方案.
任何帮助表示赞赏.
谢谢!
AOB的
1月4日编辑:
我发现每次调用openSessionWithAllowLoginUI.返回状态FBSessionStateClosedLoginFailed.登录有问题.但是,自"已经授权"页面出现以来,用户已经登录.
原因是applicationWillTerminate在openSessonWithAllowLoginUI之后立即执行.任何人都可以阐明这一点吗?
在appDelegate.h中,我导入了FacebookSDK/FacebookSDK.h,在appDelegate.m中,实现了以下内容:
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [FBSession.activeSession handleOpenURL:url);
}
-(void)applicationDidBecomeActive:(UIApplication *)application {
[FBSession.activeSession handleDidBecomeActive];
}
-(void)applicationWillTerminate:(UIApplication *)application {
[FBSession.activeSession close];
}
Run Code Online (Sandbox Code Playgroud)
mainViewController是一个多视图控制器,可以切换笔尖.
我已经实现了一个类FBHandler来处理Facebook登录/注销.FBHandler.h包含#import"Facebook.h",FBHandler是一个包含的类
-(void)sessionStateChanged:(FBSession *)session state:(FBSessionState)state error:(NSError *)error {
switch(state) {
case FBSessionStateOpen:
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
[FBSession.activeSession closeAndClearTokenInformation];
default:
break;
}
[[NSNotificationCenter defaultCenter]postNotificationName:FBSessionStateChangedNotification object:session];
// If there is an error, display the alert view. I have skipped …Run Code Online (Sandbox Code Playgroud) 我将以下代码添加到AppDelegate:
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
NSLog(@"iPhone found");
} else {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
NSLog(@"iPad found");
}
Run Code Online (Sandbox Code Playgroud)
在iPad 2上运行时,userInterfaceIdiom始终等于UIUserInterfaceIdiomPhone.我的iPad 2在iOS 6.1.3上运行.
我无法找出问题所在.
任何帮助表示赞赏!
提前致谢!