harrylin652 2015-02-04 08:43 采纳率: 0%
浏览 2594

ios8.1 的sdk 使用classdump和dumpframeworks以后遇到了问题

在生成的headers文件夹下,里面各个框架只生成了文件夹,或者是只生成了CDstructures.h文件,但是这些文件全是空的。
请教大神。。是怎么回事

 #!/usr/bin/perl
#
# 24 November 2008
# Framework Dumping utility; requires class-dump
#

use strict;

use Cwd;
use File::Path;

my $HOME = (getpwuid($<))[7] || $ENV{'HOME'}
or die "Could not find your home directory!";

# This command must be in your path.
# http://www.codethecode.com/projects/class-dump/
my $CLASS_DUMP = 'class-dump';

# 这里路径需要小心,后面像别名一样的东东需要换行的

# Public Frameworks
dump_frameworks('/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks',
'Frameworks');

# Private Frameworks
dump_frameworks('/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/PrivateFrameworks',
'PrivateFrameworks');

sub dump_frameworks
{
    my($dir, $subdir) = @_;

    opendir(my $dirh, $dir) or die "Could not opendir($dir) - $!";

    # Iterate through each framework found in the directory
    foreach my $file (grep { /\.framework$/ } readdir($dirh))
    {
        # Extract the framework name
        (my $fname = $file) =~ s/\.framework$//;
        print "Framework: $fname\n";

        my $headers_dir = "$HOME/Headers/$subdir/$fname";

        # Create the folder to store the headers
        mkpath($headers_dir);

        # Perform the class-dump
        my $cwd = cwd();
        chdir($headers_dir) or die "Could not chdir($headers_dir) - $!";

        system($CLASS_DUMP, '-H', "$dir/$file");

        if($? == -1)
        {
            die "Could not execute $CLASS_DUMP - $!\n";
        }

        chdir($cwd) or die "Could not chdir($cwd) - $!";
    }
}

以上是DumpFrameworks.pl的内容

  • 写回答

2条回答 默认 最新

  • jun1987929 2015-10-14 16:47
    关注

    谢谢你的脚本。我改了下:

    dump_frameworks('/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.4.sdk/System/Library/Frameworks',
    'Frameworks');
    dump_frameworks('/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.4.sdk/System/Library/PrivateFrameworks',
    'PrivateFrameworks');

    这样就可以了。

    评论

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元