Facebook-iOS-SDK:如何纠正构建框架并将其添加到项目中?

gau*_*inc 3 linker facebook facebook-ios-sdk

我为iPad开发了一个应用程序.

现在,我在iPad-5.1模拟器上测试应用程序.

而对于我的不快乐,应用程序就会失败.

1)我使用FacebookSDK 3.0
2)编译FacebookSDK到框架FBiOSSDK
3)添加框架FBiOSSDK项目
4)查看日志链接
5)i386硬件架构未定义的符号:"_sqlite3_open_v2"和多对多"_sqlite3_*"符号.

也许我在将它构建到框架时为facebook-sdk项目设置了错误的选项?

有人可以帮忙吗?

搜索后,我找到了一个解决方案:

"添加到项目libsqlite3.0.dylib"

但是Linker说:"忽略文件/path/libsqlite3.dylib,在文件中缺少必需的架构i386"

- 主要问题 -

一小时后,我发现,我以错误的方式链接框架.

脚本在本地目录中创建它(不在System/Library/FrameworksLibrary/Frameworks中).

添加后,Framework Search Paths更改为非默认值.

如何以正确的方式构建框架?

谢谢!

gau*_*inc 6

所以,经过很长一段时间我做了这样的事情来使这个FacebookSDK工作:

1)首先,我删除了构建FacebookSDK框架(rm -rf)并运行构建框架的脚本(build_framework.sh)

2)之后,我添加到项目(项目 - > 构建阶段 - > 链接二进制文件库)FacebookSDK.framework(从本地目录,按钮添加其他)和libsqlite3.0dyliblibsqlite3.dylib(只需在搜索中搜索 -领域!)

0)或3)之后,我做出这样的:寻找目录〜/资源库/开发/ Xcode中/ DerivedData并删除一切源于此.(使用命令rm -rf dir_name/*)

您可以从步骤3)开始,我也将其命名为步骤0).

在这里,我提供了一个可以帮助您的脚本

#!/usr/bin/perl
my $pathToCacheDirectory = qq(~/Library/Developer/Xcode/DerivedData/);

sub TaskToDo{
    my ($refToArgv)=@_;
    die "can't work with too much parameters" unless(scalar(@$refToArgv)==1);
    my $what = shift @$refToArgv;
    my $time = 30; #wait 30 seconds in each iteration
    my $workRef = sub{
        print "i will delete: ";
        print qx(ls $pathToCacheDirectory);
    qx(rm -rf $pathToCacheDirectory);
    };
    #view help
    if ($what eq 'help'){
        print qx(perldoc -t $0);
    }
    #list directory 
    if ($what eq 'watch'){
    print qx(ls $pathToCacheDirectory);
    }
    #kill files instantly
    if ($what eq 'now'){
    print 'kill now'.qq(\n);
    $workRef->();
    print 'see result'.qq(\n);
    print qx(ls $pathToCacheDirectory);
    }
    #switch on watcher
    if ($what eq 'work'){
    for(;;){
        #in INF loop
        for my $s(0..4){
        #print "this is <<$_>>\n";
        print "time remaining: ".(5-$s)*$time." sec \n";
        sleep($time);
        }
        $workRef->();    
        sleep(10);
    }
    }
} 

TaskToDo(\@ARGV);



__END__

=head1 DESCRIPTION

This script clear directory with cache from Xcode

    -- 'help'  will show this log

    -- 'work'  will run script as observer and killer

    -- 'watch' will show info about directory with cache

    -- 'now'   will kill all instantly

    Example: perl scriptName.pl help

=cut
Run Code Online (Sandbox Code Playgroud)