Updating extensions for iOS 7

From iPhone Development Wiki
Revision as of 23:29, 23 December 2013 by Rpetrich (talk | contribs)

This is an informal collection of advice; feel free to add to it and rearrange.

Dealing with 64bit

http://www.mediafire.com/view/n68ebac7q0a01xd/CocoaTouch64BitGuide.pdf

20:44:45 <@sbingner> saurik said all tweaks will need to be recompiled to have a 64bit slice

20:45:10 <@sbingner> which is what I've been working on... as soon as substrate is updated I should be able to just type "make" :D

20:49:27 <@sbingner> crash-x, installing rpetrich's fork of theos and making sure it can compile for armv6 with latest xcode on it... and that arm64 will compile except for the mobilesubstrate lib being missing

20:45:32 <@Optimo> dlopen from a variety of avenues, or ...INSERT_LIBRARIES -- all for your own testing of course

20:45:54 <@Optimo> (if you have a 64bit device)

Badges

Small notice: Anyone using the badge value of a app icon shouldn't name the variable: " badgeValue" , as UITabBArItem.h has already defined a NSString badgeValue.

Working with Mobile Substrate

21:22:35 < Alcatraz> https://ghostbin.com/paste/zhsx9 Tutorial to Make mobilesubstrate more stable while we wait for an official update.


Install MobileSubstrate

Add the repo: rpetri.ch/repo

Install the beta Activator

Done

Some Stuff that was broken before you installed the beta activator such as SBSettings and PreferenceLoader should be working now.

If they are not,it is likely another package that still wont work. Or you rebooted your device.

Rebooting the device seems to break mobilesubstrate for whatever reason.

So each time you reboot you have to reinstall mobilesubstrate


Theos advice

21:25:55 <@DHowett> This time, you're all wrong

21:25:59 <@sbingner> oh?

21:26:01 <@DHowett> theos passes -arch flags to the compiler, after all.

21:26:07 < Maximus> ARCH=armv7 and uh

21:26:08 <@sbingner> ^^

21:26:12 < Maximus> ARCHS

21:26:18 <@DHowett> alexzielenski: by default, theos passes armv7 armv7s to the compiler on 6.0+

21:26:39 <@DHowett> alexzielenski: you can override this by setting ARCHS=armv7 arm64 before you include common.mk

21:26:48 < alexzielenski> DHowett: thanks

21:27:10 <@sbingner> DHowett, what I said was wrong because it wasn't complete? :P

21:27:26 < Maximus> i was getting there

21:27:41 <@DHowett> sbingner: well, because it doesn't have anything to do with the compiler, really: this is all a compiler driver problem once you have upgraded xcode

21:27:43 <@sbingner> have time to point me to the right place to add support for foo_FILES_arch to rpetrich's fork? I'm missing the right spot

21:27:52 <@DHowett> instance/rules.mk

21:28:29 < coolstar> screw arm64

21:28:36 < coolstar> the build tools are still not out yet

21:28:36 < coolstar> http://opensource.apple.com/

21:28:37 <@sbingner> ok thanks... I guess I was in the right spot but doing something wrong lol... I'll figure it out

21:28:44 <@DHowett> the proprietary ones are.

21:28:50 <@DHowett> why is everybody focusing on this now?



01:03:36 < therpgitbot> [theos] rpetrich pushed 1 new commit to master: http://git.io/ankV8g

01:03:36 < therpgitbot> theos/master f6ebd79 Ryan Petrich: Workaround bootstrap problems on Xcode 5.x (temporary fix for now)



22:58:21 <%joedj> here's a tip: if you aren't using low-level substrate features like MSHookFunction, you may be able to prepare arm64-ready packages using %config(generator=internal). of course, they won't actually work until substrate can load them





Theos and ldid

12:11:10 < Ge0rges> tets.

12:11:37 < Ge0rges> if anyone here has a tip Still having this problem when installing ldid for theos: https://pastee.org/vasuu

12:28:42 <%joedj> Ge0rges: just put the ldid binary i gave you into theos/bin/ and move on to the next step

13:14:13 <%joedj> Ge0rges: http://joedj.net/ldid


Dealing with 32-bit and 64-bit

12:38:15 <%joedj> sbingner: i did find this question (and the response 2 posts down) interesting, i'm not sure what they're talking about: https://www.mikeash.com/pyblog/friday-qa-2013-09-27-arm64-and-you.html#comment-7436311d02c5a55738d1baefa03b0d34


Mobile Substrate tip

14:20:58 < ganbold_> so mobilesubstrate is working partially? after reboot/restart doesn't work

14:29:03 < ac3xx> ganbold_, either just reinstall it through cydia or run this over SSH - /var/lib/dpkg/info/mobilesubstrate.extrainst_ upgrade && killall SpringBoard


Theos and ldid errors

19:02:14 < yoshbu> I've been off the jailbreak train for awhile now. Trying to reinstall theos, getting some build failures when trying to install ldid, anybody know if there's a quick fix?


19:02:52 < yoshbu> like, error: unknown type name '__darwin_intptr_t'

19:02:59 < yoshbu> and, error: unknown type name '__uint32_t'; did you mean 'uint32_t'?

19:05:27 < Alcatraz> are you trying to compile ldid on mac?

19:05:55 < yoshbu> following step 4 of http://iphonedevwiki.net/index.php/Theos/Getting_Started

19:06:10 < Alcatraz> yeah compiling it has been broken for some time

19:06:27 < Alcatraz> has to do with xcode 5

19:06:32 < Alcatraz> pretty sure anyway

19:06:50 < yoshbu> ldid is a dependency of theos though right?

19:07:01 < Alcatraz> yeah. you can ask someone on here for a copy

19:07:23 -!- mindw0rk [[email protected]] has joined #theos

19:08:05 < ac3xx> yoshbu, wget http://ac3xx.com/ldid -O $THEOS/bin/ldid && chmod +x $THEOS/bin/ldid

Supporting iOS 4-7 with one binary & Example project link

23:59:59 <%joedj> sbingner: i used 5.1 SDK (xcode 4.4.1) for the armv6 slice, targetting 4.0: https://github.com/joedj/ExchangePolicyCleaner/blob/master/Makefile#L3

Day changed to 24 Dec 2013

00:01:43 <+crash-x> joedj: you can make a fat binary with the armv6 slice targetting 4.0 and the arm64 part targetting ios 7 and achieve support for iOS 4-7?

00:03:53 <+crash-x> joedj: is that project on github been updated for iOS 7 and rpetrich's theos fork?

00:04:09 <%joedj> crash-x: indeed, i believe so, although i think i've only tested down to ios6

00:04:10 <%joedj> crash-x: yes

00:04:22 <+crash-x> thats amazing, thank you!

00:04:25 -!- charliebashford [[email protected]] has quit [Client exited]

00:04:53 <+crash-x> if i wanted to get this working, what would i have to do? install rpetrich's theos fork and then I could just make package it or is there anything else I would have to install or do>

00:07:36 <%joedj> crash-x: there are a few other things like setting THEOS_PLATFORM_SDK_ROOT_armv6 (see the Makefile i just linked), and possibly switching to using %config(generator=internal) in your logos files unless you have an arm64 substrate you can link against (i think theos might be able to bootstrap this for you, but haven't tried)

00:08:04 <%joedj> crash-x: %config(generator=internal) might also be the default with rpetrich's fork, but i prefer to be explicit

Accessing the device's UDID

UDID access is blocked by default on iOS7 and iOS will substitute a generated ID in UIDevice's uniqueIdentifier property. Use MGCopyAnswer(CFSTR("UniqueDeviceID")) to get access to the device ID from system processes. Device ID is completely inaccessible from app store processes and some daemons.