1

ここのチュートリアルに従って、theos を使用して簡単な微調整を行いました。ただし、 hereのヘッダーを使用して make を実行すると、次のようになります

Making all for tweak WelcomeWagon...
 Preprocessing Tweak.xm...
 Compiling Tweak.xm...
In file included from Tweak.xm:1:
/opt/theos//include/SpringBoard/SpringBoard.h:7:26: error: UIApplication.h: No such file or directory
cc1objplus: warnings being treated as errors
In file included from /opt/theos//include/SpringBoard/UIApplicationDelegate-Protocol.h:7,
                 from /opt/theos//include/SpringBoard/SpringBoard.h:9,
                 from Tweak.xm:1:
/opt/theos//include/SpringBoard/NSObject-Protocol.h:7: warning: duplicate declaration for protocol ‘NSObject’
In file included from /opt/theos//include/SpringBoard/SpringBoard.h:9,
                 from Tweak.xm:1:
/opt/theos//include/SpringBoard/UIApplicationDelegate-Protocol.h:11: warning: duplicate declaration for protocol ‘UIApplicationDelegate’
/opt/theos//include/SpringBoard/UIApplicationDelegate-Protocol.h:35: error: duplicate property declaration ‘window’
make[2]: *** [obj/Tweak.xm.o] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [WelcomeWagon.all.tweak.variables] Error 2

いくつか検索した後、Ryan Petrich のダンプされたヘッダーを使用している人がいることがわかったので、インクルード フォルダーを空にして彼のヘッダーを入れ、make を実行し、これを出力として使用しました。

Making all for tweak WelcomeWagon...
 Preprocessing Tweak.xm...
 Compiling Tweak.xm...
In file included from /opt/theos//include/QuartzCore/QuartzCore-Structs.h:11,
                 from /opt/theos//include/QuartzCore/CAValueFunction.h:9,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h:30,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/QuartzCore.h:9,
                 from /opt/theos//include/UIKit/UIKit-Structs.h:15,
                 from /opt/theos//include/UIKit/UIGestureRecognizer.h:6,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISwipeGestureRecognizer.h:9,
                 from /opt/theos//include/UIKit/UISwipeGestureRecognizer.h:10,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h:11,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPickerView.h:11,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityAdditions.h:10,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h:12,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:10,
                 from /opt/theos//Prefix.pch:4,
                 from <command-line>:0:
/opt/theos//include/IOSurface/IOSurface.h:20:36: error: IOSurface/IOSurfaceAPI.h: No such file or directory
In file included from /opt/theos//include/IOSurface/IOSurface.h:21,
                 from /opt/theos//include/QuartzCore/QuartzCore-Structs.h:11,
                 from /opt/theos//include/QuartzCore/CAValueFunction.h:9,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h:30,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/QuartzCore.h:9,
                 from /opt/theos//include/UIKit/UIKit-Structs.h:15,
                 from /opt/theos//include/UIKit/UIGestureRecognizer.h:6,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISwipeGestureRecognizer.h:9,
                 from /opt/theos//include/UIKit/UISwipeGestureRecognizer.h:10,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h:11,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPickerView.h:11,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityAdditions.h:10,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h:12,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:10,
                 from /opt/theos//Prefix.pch:4,
                 from <command-line>:0:
/opt/theos//include/IOSurface/IOSurfaceAccelerator.h:20: error: ‘IOSurfaceRef’ has not been declared
/opt/theos//include/IOSurface/IOSurfaceAccelerator.h:20: error: ‘IOSurfaceRef’ has not been declared
In file included from /opt/theos//include/QuartzCore/QuartzCore-Structs.h:11,
                 from /opt/theos//include/QuartzCore/CAValueFunction.h:9,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h:30,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/QuartzCore.h:9,
                 from /opt/theos//include/UIKit/UIKit-Structs.h:15,
                 from /opt/theos//include/UIKit/UIGestureRecognizer.h:6,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISwipeGestureRecognizer.h:9,
                 from /opt/theos//include/UIKit/UISwipeGestureRecognizer.h:10,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h:11,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPickerView.h:11,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityAdditions.h:10,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h:12,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:10,
                 from /opt/theos//Prefix.pch:4,
                 from <command-line>:0:
/opt/theos//include/IOSurface/IOSurface.h:27: error: variable or field ‘IOSurfaceFlushProcessorCaches’ declared void
/opt/theos//include/IOSurface/IOSurface.h:27: error: ‘IOSurfaceRef’ was not declared in this scope
In file included from /opt/theos//include/QuartzCore/CAValueFunction.h:9,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h:30,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/QuartzCore.h:9,
                 from /opt/theos//include/UIKit/UIKit-Structs.h:15,
                 from /opt/theos//include/UIKit/UIGestureRecognizer.h:6,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISwipeGestureRecognizer.h:9,
                 from /opt/theos//include/UIKit/UISwipeGestureRecognizer.h:10,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h:11,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPickerView.h:11,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityAdditions.h:10,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h:12,
                 from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:10,
                 from /opt/theos//Prefix.pch:4,
                 from <command-line>:0:
/opt/theos//include/QuartzCore/QuartzCore-Structs.h:196: error: ‘IOSurfaceRef’ does not name a type
In file included from /opt/theos//include/UIKit/UIKit2.h:52,
                 from /opt/theos//include/MessageUI/MessageUI-Structs.h:8,
                 from /opt/theos//include/MessageUI/ComposeRecipient.h:9,
                 from /opt/theos//include/ChatKit/CKMailComposeRecipient.h:6,
                 from /opt/theos//include/ChatKit/ChatKit.h:41,
                 from /opt/theos//include/SpringBoard/SpringBoard-Structs.h:13,
                 from /opt/theos//include/SpringBoard/SpringBoard.h:8,
                 from Tweak.xm:1:
/opt/theos//include/UIKit/UIImage2.h:85: error: expected type-specifier before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIImage2.h:85: error: expected `)' before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIImage2.h:85: error: expected `;' before ‘)’ token
/opt/theos//include/UIKit/UIImage2.h:86: error: expected type-specifier before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIImage2.h:86: error: expected `)' before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIImage2.h:86: error: expected `;' before ‘)’ token
/opt/theos//include/UIKit/UIImage2.h:91: error: expected type-specifier before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIImage2.h:91: error: expected `)' before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIImage2.h:91: error: expected `;' before ‘)’ token
In file included from /opt/theos//include/UIKit/UIKit2.h:448,
                 from /opt/theos//include/MessageUI/MessageUI-Structs.h:8,
                 from /opt/theos//include/MessageUI/ComposeRecipient.h:9,
                 from /opt/theos//include/ChatKit/CKMailComposeRecipient.h:6,
                 from /opt/theos//include/ChatKit/ChatKit.h:41,
                 from /opt/theos//include/SpringBoard/SpringBoard-Structs.h:13,
                 from /opt/theos//include/SpringBoard/SpringBoard.h:8,
                 from Tweak.xm:1:
/opt/theos//include/UIKit/UIWindow2.h:19: error: expected type-specifier before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIWindow2.h:19: error: expected `)' before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIWindow2.h:19: error: expected `;' before ‘)’ token
/opt/theos//include/UIKit/UIWindow2.h:20: error: expected type-specifier before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIWindow2.h:20: error: expected `)' before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIWindow2.h:20: error: expected `;' before ‘)’ token
/opt/theos//include/UIKit/UIWindow2.h:21: error: expected type-specifier before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIWindow2.h:21: error: expected `)' before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIWindow2.h:21: error: expected `;' before ‘)’ token
/opt/theos//include/UIKit/UIWindow2.h:116: error: expected type-specifier before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIWindow2.h:116: error: expected `)' before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIWindow2.h:116: error: expected `;' before ‘)’ token
/opt/theos//include/UIKit/UIWindow2.h:117: error: expected type-specifier before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIWindow2.h:117: error: expected `)' before ‘IOSurfaceRef’
/opt/theos//include/UIKit/UIWindow2.h:117: error: expected `;' before ‘)’ token
make[2]: *** [obj/Tweak.xm.o] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [WelcomeWagon.all.tweak.variables] Error 2

誰かが私が間違っていることを教えてもらえますか? 前もって感謝します。

4

3 に答える 3

14

今日、Ryan Petrich のダンプされたヘッダーの現在のバージョンで同じ問題が見つかりました。

最後に、解決策は次のとおりであることがわかりました。

  1. ダンプされた Springboard ヘッダーをインポートする

  2. /System/Library/Frameworks/IOSurface.framework/Headers/IOSurfaceAPI.h を /opt/theos/include/IOSurface にコピーします。その理由は IOSurface/IOSurface.h にあります!

  3. OS X Lion 以降を実行している場合は、/opt/theos/include/IOSurface/IOSurfaceAPI.h の次の行をコメントアウトする必要がある場合があります。

    /* この呼び出しにより、IOSurface への参照を保持する xpcobject_t を取得できます。
    注: IOSurfaceRef 暗黙から作成されたライブ XPC オブジェクトは、IOSurface のグローバルな使用を増加させます。
    オブジェクトが破壊されるまで 1 ずつ数えます。*/
    // xpc_object_t IOSurfaceCreateXPCObject(IOSurfaceRef aSurface)
    // IOSFC_AVAILABLE_STARTING(_MAC_10_7, __IPHONE_NA);

    /* この呼び出しにより、IOSurfaceCreatePort() によって作成された xpcobject_t を取得し、そこから IOSurfaceRef を再作成できます。*/
    // IOSurfaceRef IOSurfaceLookupFromXPCObject(xpc_object_t xobj)
    // IOSFC_AVAILABLE_STARTING(_MAC_10_7, __IPHONE_NA);

試してみる!

于 2012-07-15T14:42:54.847 に答える
2

私は今日これを2013年2月13日に行ったところ、上記がいくらか役立つことがわかりました。少し頭脳とグーグルの助けを借りて、私はあなたがする必要があるのは:

1.)ヘッダーを取得します-「RyanPetrichのダンプされたヘッダー」をGoogleで検索すると、https ://github.com/rpetrich/iphoneheadersに移動します。

2.)gitを使用してリポジトリのクローンを作成します:git clone https://github.com/rpetrich/iphoneheaders

3.)run make(/ optの下にインストールされているtheosの場所が原因で、makeをsudo makeとして実行する必要があることがわかりました。)

4.)「エラーファイルが見つかりません」ごとに、インクルードファイルをプロジェクトにコピーしました。

5.)プロジェクトフォルダーに次のフォルダーを作成する必要があると思います。AccountSettingsIOKit SpringBoard ActorKit IOSurface TelephonyUI AppSupport JavaScriptCore Tutorial.plist Availability2.h MIME Tweak.xm ChatKit Makefile Tweak.xm.original CoreFoundation MediaPlayerUIKitCoreGraphicsメッセージWebCoreDAVKit MessageUI WebKit DataAccess MusicLibrary control Foundation PhotoLibrary obj GraphicsServices QuartzCore theos

6.)上記の回答から#2を実行する必要があります。「/ System / Library / Frameworks / IOSurface.framework / Headers/IOSurfaceAPI.hを/opt/theos/include/IOSurfaceにコピーします。理由はIOSurface/IOSurface.hにあります。 !」

7.)また、上記の回答から編集する必要があります。「OS X Lionを実行している場合は、/ opt / theos / include / IOSurface/IOSurfaceAPI.hの次の行をコメントアウトする必要があります。」

/* This call lets you get an xpcobject_t that holds a reference to the IOSurface.
Note: Any live XPC objects created from an IOSurfaceRef implicity increase the IOSurface's global use
count by one until the object is destroyed. */
// xpc_object_t IOSurfaceCreateXPCObject(IOSurfaceRef aSurface)
// IOSFC_AVAILABLE_STARTING(_MAC_10_7, __IPHONE_NA);

/* This call lets you take an xpcobject_t created via IOSurfaceCreatePort() and recreate an IOSurfaceRef from it. */
// IOSurfaceRef IOSurfaceLookupFromXPCObject(xpc_object_t xobj)
// IOSFC_AVAILABLE_STARTING(_MAC_10_7, __IPHONE_NA);

私のIOSurfaceAPI.hの参考までに、これらは行番号252/253の周りの行でした

于 2013-02-14T00:48:04.297 に答える
0

ダンプされた Springboard ヘッダーをインポートする必要はありません。

于 2012-06-07T20:08:06.593 に答える