Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Xcode question #11

Closed
mgj7 opened this issue Nov 14, 2017 · 3 comments
Closed

Xcode question #11

mgj7 opened this issue Nov 14, 2017 · 3 comments

Comments

@mgj7
Copy link

mgj7 commented Nov 14, 2017

Hello everybody,

I know this is not really an issue, but an help request, but I really hope some gurus like you will help me.

In a campus project trying to help student with disease with need to install mame4ios on an iPad running 10.3.3 (no jailbreak possible, as you know).

I've found two ways: a) Xcode sideloading; b) sideload with cydia impactor.

The latter works very well and easy, but the problem is the 7 days "limit" (renew, renew, etc.)

Xcode sideloading always returns me with lots of error (I'm using Xcode 9).
First question is: installing with Xcode skip the 7 days limit? (if it's the same... I stop here)
Second question is: if using Xcode is possible to have a "permanent" installation, where I can find a very simple step by step guide.

I really need an help.
Thanks a lot in advance.
m.

@kenthumphries
Copy link

Not sure if this was your problem @mgj7, but I had problems installing from Xcode onto a 32-bit/ARMv7 device (iPad 4th generation).

I got a whole lot of errors like:

Undefined symbols for architecture armv7:
  "std::string::reserve(unsigned long)", referenced from:
      std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libmamearmv7.a(inst.o)

The fix was to follow these two solutions from SO:

  1. https://stackoverflow.com/a/19276283/9051514
    Add a new project file of type C++ and ensure it's added to all the targets. You can name this file anything. If you named the file Blah, it would add like "blah.cpp" & "blah.h" to your project.

  2. https://stackoverflow.com/a/19272610/9051514
    Go to Project settings-> Build Settings->Apple LLVM 9.0 - Language - C++ -> C++ Standard Library
    Choose libstdc++ instead of libc++

With these two changes, I was able to build onto iPad 4th generation.

@gajahduduk
Copy link

gajahduduk commented Oct 8, 2018

Probably too late to help mgj7 here, but hope this helps others. I managed to get this to work on iOS 12 and XCode 10.0 on MacOS 12.13.6, with no experience with recent versions of XCode but some familiarity with XCode from years ago.

First question is: installing with Xcode skip the 7 days limit? (if it's the same... I stop here)

Want know this as well, assuming not a registered iOS developer. But I assume that doing it this way is a permanent installation. If I'm wrong after 7 days I'll post back here. I also assume that if you ever have to backup and restore your phone, you'd need to re-install it thru XCode (and the ROMS thru iTunes file sharing). (Experts care to comment on that?)

Anyway, here's what I learned:

• The readme.md instructions on the main page are very helpful (arigato…) but outdated and somewhat misleading.

• you need just the master.zip and the linked 64-bit MAME binary from meganz. you do not need to compile MAME yourself. unzip the former and you'll have a folder called "MAME4iOS-master". Put the binary (libmamearm64.a) in the root folder there. (That's what Yoshisuga means by "the root directory of the repo")

• Once you open the "xcode/MAME4iOS/MAME4iOS.xcodeproj", you (may) need to drag the "libmamearm64.a" file to the project in the left pane, right under the expanded "MAME4iOS", where (the red, meaning absent file) libmamearmv7.a currently is. Or perhaps I had to do this because it was not in the right location when I first opened the project. As yoshsiuga says, it should not be red. libmamearmv7.a probably will be, but you can ignore, as that's the 32-bit binary and you are making a 64-bit build.

• If you're not in the iOS developer program, you need to create your iOS Development Profile, but it's not (no longer?) where yoshisuga describes. XCode>Preferences>Accounts. Add it by Apple ID.

• select the "libmamearm64.a" file. On the right select only "MAME4iOS 64-bit".

• Then I fiddled with many of the main build settings. The overall goals are to create a build of MAME4iOS 64-bit.app (your target product). In my case with an "iOS Deployment Target" of "iOS 12". (ie, don't need backwards compatibility). Under the "Signing" section, adjust "Code Signing Identities" according to the account you just made. ie chose that for Debug and Release, but chose "iOS Developer" for Any iOS SDK in the sub-sections below those. (No big reason, but worked).

• then turned off various debug options. (Unneeded, smaller build). Under Build Options>Enable Testability>Debug: No, Release: No. strip debug symmbols, debug: yes. Apple Clang -Code Gen. >Optimization Level>Debug: None [-OO]

• After several tries, with failures mainly relating to how I set the Code Signing sections, I got a build to succeed. But you'll have 150-200 build warnings (yellow !), which you can ignore. Ultimately yoshisuga will have to fix depricated code.

• I tried Product>Build for Running. Then you push "Run" to "Run" it on your device (which as to be connected). Once it's installed and working, you can "Stop" it in Xcode

Final note: when installing ROMS with iTunes file sharing, iTunes won't allow access to "ROMS" folder, only root folder of app's Documents. Luckily MAME4iOS knows this and moves those files to ROMs.

(Some of the above may be unnecessary, but it worked. Also tried not to leave anything out, but honestly was a lot of fiddling until I got a successful build. So ganbatte kudasai. Good Luck.)

@mrjschulte
Copy link
Collaborator

Closing as this ticket no longer applies.

mrjschulte added a commit that referenced this issue Mar 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants