Comments (18)
Hi, @Nanoc-ice & @osy: Not sure if Jitterbug iPhone works same as iPad but I just found what I think is a simple & effective way that got Jitterbug installed & working on my iPadPro M1 w/iPadOS 15 if don't have paid dev accent yourself.
-
Go to 'UDID Registrations' site & buy Platinum account ($20/yr). That gives you Paid Dev cert & custom profile (need the latter to get VPN working on same device).
-
Determine 'bundle id' of the custom profile you bought.
-
Download & install zhlynn/zsign linux signer (I put in linux in UTM).
-
Put cert & custom profile & downloaded Jitterbug.ipa in same folder.
-
CLI: zsign -k Cert.p12 -p password -m CustomProfile -o signed.ipa -b 'bundleIDnamefromcustomprofile' Jitterbug.ipa
-
Install signed.ipa on your device (I use https://diawi.com).
-
Follow osy's instructions on GitHub site to import pairings and support files as you mentioned in your post.
I did all then the app asks you if you wish to allow VPN tunnel and makes you input your device code to unlock. After that everything just works perfectly! You can tap on 'local device' from Jitterbug and pull up UTM and just open it!
Hopefully the same steps will work on iPhone as iPad.
Happy to answer any questions on the VPN installation if you or others have question on the above steps I took.
Good luck!
from jitterbug.
I built it with that profile and installed it on my iPad. Do I have to re-sign it?
Is there a way I can tell the Jitterbug I built is using that profile?
from jitterbug.
Hi, @Nanoc-ice. If I am understanding you correctly, you are asking if now that you've already installed Jitterbug on your iPad if you can somehow tell Jitterbug once it is installed to use the Custom Profile correctly? If so, I don't think so. I believe that everything has to be set up correctly before signing the app and before installing it. When I did those steps without changing the bundle ID to my CustomProfile ID during signing then the app installed but didn't work correctly (i.e. didn't open the VPN tunnel or wouldn't let me import the support files). I am only a novice Linux user but would suggest re-signing and reinstalling Jitterbug on your iPad (if your primary device) using the steps I suggested (or another user's way if another user got it to work differently). // Much easier to get Jitterbug to work with a remote device-- don't need a custom certificate and most resigning app service's certificates will sign Jitterbug correctly to enable you to use a remote device. Note that if you prefer to use the remote device option you only need Jitterbug on the remote device (i.e. if UTM is on your iPad, you just need Jitterbug installed on your remote iPhone device to remotely start UTM on your iPad). Much more convenient though to have UTM and Jitterbug on the same device using a VPN tunnel. However, note that it seems the VPN option requires a Wifi connection to work so you may want to keep Jitterbug also on your remote device for the times when you can't get Wifi on your iPad (i.e. you could then link both devices via a hotspot from your iPad to your iPhone and that will work).
I hope that helps answer your question. If not, perhaps Osy or an advanced user could give you more information.
from jitterbug.
Upgraded to iPadOS 15.1 and now VPN tunnel method on same device won't mount (still opens tunnel and pairs and can select UTM and remote start Jitterbug on 2nd device still works). Suspect Apple changed something. Will await new 15.1 DMG support files to come out and upload and retest. Sorry--seemed like good news for a short time. :-(
from jitterbug.
so, when I am on the primary device and select the secondary device and it shows the installed apps, I select UTM and it starts on the secondary phone. Is it supposed to work like that? then if I resolve the Tunnel issue, would it still start UTM on the secondary device?
For my build, the way I am going to try next is to have 2 identical provisioning profiles, one for Jitterbug and one for JitterbugTunnel. Xcode won’t build the JitterbugTunnel because it says it doesn’t have a provisioning profile with the JitterbugTunnel app id. we’ll see if that works. How did these get built initially otherwise??
from jitterbug.
Hi, @Nanoc-ice. Yes, if using Jitterbug remotely then when it is working correctly, you will start up Jitterbug, see your secondary device on the left-hand side of the screen (as long as your primary device is connected to your secondary device by being on the same wifi network or tethered via a hotspot), see a list of installed apps on the secondary device when you click on that secondary device on the left-hand side of the screen, choose UTM, and it will start up UTM on the secondary device.
If you resolve the VPN tunnel issue, you can still choose to use VPN remotely as you described and in the above paragraph. However, you will also see on the left-hand side of your screen your local device (which you will normally see anyway without the VPN tunnel working--you just won't be able to select any of your local device's apps without the VPN tunnel) and will be able to click on your local device(same one as Jitterbug is installed on) and select UTM on your local device, choose UTM, and start up UTM on the same device as Jitterbug is installed on using the VPN tunnel (the only additional difference is that your device will ask you permission to turn on VPN).
Regarding your build and using 2 identical provisioning profiles, I'm not completely sure since my Mac and Xcode is to old to build Jitterbug for my iPad. However, I think you might be running into the same thing that was preventing me from getting the VPN tunnel to run on my device when I tried signing it without Xcode. It seems that in order to enable any special entitlements (e.g. enabling the use of a VPN tunnel) from an app you (or Xcode?) is signing, the bundle ID of the app must match the bundle ID specified in your Custom Mobile Provision. Notably, Jitterbug's bundle ID is something like "com.Osy.Jitterbug" and, depending on your Custom Mobile Provision, it likely doesn't have "com.Osy.Jitterbug"in its identifier (e.g. my Custom Mobile Provision that I bought from UDID Registrations has a full App ID of something like "XXXX.com.XXX.explicit". If I used my signing programs with that Custom Mobile Provisions, it would sign and install but not allow the special VPN tunnel entitlement. When I reviewed the logs of the SignTools app when I did so, it gave me a flag that the bundle ID of my Custom Mobile Provision profile did not match the bundle ID in my app (Jitterbug) and so entitlements would be broken. Thus, I used the zsign app on GitHub which lets you change an app's bundle ID before signing it and therefore changed Jitterbug's bundle ID from something like "com.Osy.Jitterbug" to "com.XXX.explicit" (leaving out the initial Team ID prefix from the Custom Mobile Provision's profile) and then signed Jitterbug ipa with just the Custom Mobile Provision profile and it worked (VPN and appt worked perfectly)! Until I updated to iPadOs 15.1 :-( (now looking for 15.1 dmg to get it working again). So, maybe you could use Xcode to change the bundle ID before signing it and only need to use one provisioning profile like I got to work? The Jitterbug tunnel was labeled as a "plug-in" and didn't seem to need to be signed separately for me to get it to work.
I hope that is helpful. Good luck!
from jitterbug.
@Nanoc-ice, I got the VPN working again!
I figured out how to extract the Developer Disk Image and Developer Disk Signature from Apple’s free Xcode 13 download and installed those images in Jitterbug and it is back to working. It turned out that I didn’t need “15.1” Developer Disk Images—I only needed 15.0 Developer Disk Images which were included in the Xcode 13 package. Strangely enough, I actually had downloaded what was labeled as 15.0 Developer Disk Images before; I suspect that since the Xcode 13 download I believe just came out this week that the “15.0” Developer disk Images I had were actually 15.0 Beta versions that don’t work with iPad OS 15.1 (but the recent 15.0 Developer Disk Images extracted from Xcode 13 do!).
Anyways, if you are ever interested in extracting future Developer disk images and Developer disk signatures from Apple for use with future version of Jitterbug and didn’t know how this is what worked for me (method taken from another individual on the web who posted how to do this)
- Go to Apple’s Developer Download website: https://developer.apple.com/download/all
- Sign on with an Apple Developer account (the good news is that you can get Xcode with even a free developer account)
- Download the latest Xcode .xip archive file (e.g. Xcode13.xip; note: it is a very large file) to a Mac (doesn’t have to be an up to date Mac or OS to download this way)
- Move the downloaded Xcode file to a hard drive that has a lot of space (since it seems to take a lot of space to extract from the already large Xcode .xip file)
- Double click open the downloaded Xcode .xip archive file that you moved to a hard disk with enough space— that will trigger Apples .xip Archive extractor to extract the Xcode app and show the Xcode app in your Mac finder
- Right click on the newly extracted Xcode app and select “show package contents”—that will then show you all the folders and files in the Xcode app
- Open up the directory tree of folders to find the “Developer disk Image” and “Developer disk signature” files. They will be located under:
Developer —> Platforms —> iPhoneOSPlatforms —> Device Support —> iOS Version of your choice (e.g. in this case 15.0 is the latest images) - Copy and import both the Developer disk Image and the Developer disk signatures into Jitterbug
I hope all of this helps you or other users.
Have a good night.
from jitterbug.
I am going through this process right now, its a bit time consuming but if it works then great! I am already using Xcode 13.0, so I just had to download the zip and unarchive it. I was not aware that we were supposed to get the Developer Disk image/signature from Xcode. I got an old one (14.5 or 14.6 ?) from a link on the Jitterbug README.md.
One separate question, when, in the launcher process, does the secondary device ask to set up the tunnel? Is it safe to assume it needs to be up to communicate with the primary device?
I did double check the entitlements for both bundle IDs and they both (one for Jitterbug and one for JitterbugTunnel) have network extensions and personal VPN. I do have two provisioning profiles one for each that are identical except for the bundle ID. That seemed to make xcode happy. I then had two builds one for the iPad (my primary device) and the iPhone (secondary device). So they are both have Jitterbug with the embedded JitterbugTunnel installed.
Once this is working, I would like to put a bulleted process together that shows ALL the things that need to happen to get an app running on a primary device from a secondary device.
Next, is to get it all to work all on the Primary device with VPN. Is that easier then having two devices?
from jitterbug.
Ok, so I have followed that procedure, very articulated thank you. However, I have no such luck. I started over from scratch got Jitterbug all compiled and made an archive so I would be for sure that it was the same for both primary and secondary device. Add the pairings file and the DeveloperDiskImage.(dmg & signature) to the primary device. So my set up is: Jitterbug on Primary device configured and JItterbug on the secondary device. I have UTM installed on the secondary device. I launch Jitterbug on the primary device and select the secondary phone. It hasn’t asked to create the Jitterbug Tunnel yet. It queries the secondary device and shows the list of installed apps. I select UTM. Still not asking to create the Jitterbug Tunnel on the primary device. It also doesn’t ask to mount the DeveloperDiskImage. So, I click on mount and select it manually. Still not asking to set up VPN (and yes it gas the personal VPN entitlement included). And then nothing. UTM is running on my secondary device, but not on the primary.
Questions:
- When is it supposed to ask to set up the tunnel? Can I force it somehow?
- Does the secondary device “install/transfer” the UTM.ipa to the primary device?
- when/where/how does the secondary device enable JIT? I assume the VPN tunnel at least has to be running on the primary device.
- Let’s say the UTM app is running (like I sideload it via AltStore), obviously the secondary device won’t install/transfer it, is the process the same and when it running it enables JIT on the primary device that is running UTM?
- I have double checked that the installed UTM on the primary device will run the VM when I enable JIT from the AltServer, so I know it COULD work.
- Is this all just easier if it was all on the same primary device is there more information on how to set that up?
from jitterbug.
OK, one question potentially answered regarding the VPN. When I select the primary device (in the Jitterbug that is running on the primary device) it does ask for setting up the VPN and with the Allow, it installs and connects it.
Now, do I select the primary device or the secondary device on the primary device to start UTM on the primary (or install/transfer it)? And then when does JIT get enabled?
from jitterbug.
Hi, @Nanoc-ice. My setup is not too dissimilar to yours (Primary device = old iPad Pro w/Jitterbug installed as backup; Secondary device = new iPad Pro w/Jitterbug installed (for the purpose of starting from the same device).
Replying to your questions:
Questions:
When is it supposed to ask to set up the tunnel? Can I force it somehow?
- If you set up Jitterbug correctly with entitlements and you are connected to either Wifi or by Hotspot to another iOS device, you should have gotten a message from Jitterbug when you click on the launcher bottom tab to setup VPN on that same device (and asked you to enter you iOS device password to do so). If it didn't do so, then I suspect although Xcode build Jitterbug and you installed it, that the VPN tunnel via the Network Extensions entitlement did get signed correctly and so isn't actually working. Maybe others on this post have other suggestions or you might try a different way to sign Jitterbug
*Once the tunnel is setup (which should happen on your initial installation of Jitterbug) then a small VPN icon should show up at the top right of your display and when you use Jitterbug on the secondary device to connect to UTM on that same secondary device, Jitterbug should just automatically open up UTM for you to use. If instead you use Jitterbug on your primary device to open up UTM on your secondary device, there is no need for a VPN tunnel-- it just opens up UTM (the same that Jitterbug lite would do).
Does the secondary device “install/transfer” the UTM.ipa to the primary device?
*No, the secondary device does not transfer UTM.ipa to the primary device. UTM.ipa starts up on the secondary device and in fact once Jitterbug opens up UTM, you can actually turn off Jitterbug on the primary device (I do).
when/where/how does the secondary device enable JIT? I assume the VPN tunnel at least has to be running on the primary device.
*The secondary device enables JIT only if you are using Jitterbug on the secondary device to start UTM on the secondary device. If so, the VPN tunnel is used by Jitterbug on the secondary device to start UTM on the secondary device--no need for a primary device at all. However, if you choose to start UTM on the secondary device with Jitterbug on a primary device then you do need Jitterbug on the primary device to start UTM on the secondary device. However, it does not use a VPN tunnel to activate the JIT. I apologize that I am not knowledgeable enough to explain how it does that-- perhaps Osy or others on the post can do so if needed. Nevertheless, if you use the primary device Jitterbug to start UTM on a secondary device, once UTM is open and running, you don't need the primary device on or connected anymore.
Let’s say the UTM app is running (like I sideload it via AltStore), obviously the secondary device won’t install/transfer it, is the process the same and when it running it enables JIT on the primary device that is running UTM?
*I apologize, I couldn't follow this part of your question. If my answers above don't answer your question, if you rephrased this question, I'd be happy to try again to answer it.
I have double checked that the installed UTM on the primary device will run the VM when I enable JIT from the AltServer, so I know it COULD work.
Is this all just easier if it was all on the same primary device is there more information on how to set that up?
*I apologize, I don't use AltServer to install either UTM or Jitterbug so not sure how that exactly works or it it works better. Perhaps someone else on the post that does could comments. I would add though that having both UTM and Jitterbug on the same iOS device (e.g. iPad Pro) works well and is much more convenient for me as I don't have to carry around two devices to get UTM to work (although the one device still needs to be on Wifi to get Jitterbug working on the same device; if I'm on my cell signal on my iPad, Jitterbug won't work on the same device to get UTM started and still need a second device if so. VPN not working with cell service is a known issue that Osy has noted in another post).
I hope this helps clarify some of your questions.
from jitterbug.
Sorry-- typographical error. I meant to say in the first part of my response that if Jitterbug wasn't prompting you to enable VPN after you installed it that suggests that Jitterbug entitlements were NOT signed correctly.
from jitterbug.
I did get VPN set up, but I think I am confused by the definition of Primary and secondary device. From the way you mention in this post, I have them reversed. I thought primary is the device you want to run the app (in my case UTM) and the secondary just provides the JIT enablement. OMG, have I been going on the incorrect understanding of this!! I want to run UTM on my iPad, not my iPhone. So, maybe I am OK if I want to run Jitterbug on my iPad and utilize the VPN set up to run it all local on my iPad! If so, do I need the mobile pairing for my iPad instead of my iPhone then?
from jitterbug.
Well done! I am now able to run UTM with JIT enabled on my iPad while running Jitterbug on my iPad. Note this was built and run from Xcode 13 for my iPad (and iPhone iOS 15.02) running iOS 15.0 I had to get a mobilepairing for my iPad but that was easy creation and airdrop. From there it all runs local and I don’t need the iPhone. I want to thank you for putting up with my questions and confusion, obviously I didn’t get it from the Jitterbug README.md. Plus this is an outstanding thread for other people that are having issues. This might be good to pull out and save somewhere or Ill attempt to collect it all in a process document and share it with the folks on the UTM discord and maybe have osy add it to the Jitterbug wiki here on github.
I will now close this issue as it is resolved for running all on the one device. I am not sure about having another device in the mix, I didn’t get that working.
Thanks again for such a great explanation of things, that helped!
from jitterbug.
from jitterbug.
Sorry that I am asking to a question that is closed.
I am having an issue of 'Failed to start and application'.
I signed the iPA with iOS App Signer and I have a Apple Developer Account.
When I first open the Application (sideloaded with xcode), I am able to turn on VPN, Pair it, and Mount the DeveloperDiskImage. However, whenever I try to start an application, this error comes 'Failed to start an application'.
Any solution for this???
And also I will try to build Jitterbug with Mac and build it on iPad. However, I am keep having an error of
'Build input file cannot be found: '/Users/(My name)/Documents/Jitterbug/Libraries/libplist/src/(file name)'
Please help me.
from jitterbug.
Hi, @KorEmla. My thought as a novice user (who spent a while trying different solutions) is that your ‘Failed to start an application’ stems from one of two things:
- Developer Disk Image does not match the iOS you are trying to run UTM in or
- The app has been fully signed correctly due to the limitations of the Developer certificate you are trying to sign the app with
In my experience when either of the above are not correct, the UTM “almost” works but not all the way like you are mentioning. I don’t know if you are using the latest iOS or not and whether the latest iOS DeveloperDiskImage was posted on the internet, but it hadn’t been when I first updated to the newest iPad iOS. I ended up downloading Xcode from Apple directly and extracting the DeveloperDiskImage to run UTM with the latest iPadOS.
My MAC is unfortunately too old to either use iOS App signer on the MAC or to build Jitterbug with Xcode. The key to successfully use the VPN function though is that you need to have a developer certificate AND a custom mobile profile to be able to successfully use the VPN function (unless perhaps your have your paid developer certificate directly from Apple). None of the regular resigning services that I could find except UDID Registrations would seem the developer certificate and that custom mobile profile that you need to get the VPN working correctly.
If you primarily would like to still try and sign the certificates with iOS App Signer on your MAC or build on your MAC with Xcode, perhaps someone else on the group could give you some additional pointers. If you have access though to a Linux machine (or even using your Linux guest on your UTM app on your iPad— which is what I did), I’d continue to recommend installing the Github zsign package— worked very well for me and pretty straightforward. I’ve recopied the steps I did to use zsign to successfully sign and get Jitterbug’s VPN to work:
Go to 'UDID Registrations' site & buy Platinum account ($20/yr). That gives you Paid Dev cert & custom profile (need the latter to get VPN working on same device).
Determine 'bundle id' of the custom profile you bought.
Download & install zhlynn/zsign linux signer (I put in linux in UTM).
Put cert & custom profile & downloaded Jitterbug.ipa in same folder.
CLI: zsign -k Cert.p12 -p password -m CustomProfile -o signed.ipa -b 'bundleIDnamefromcustomprofile' Jitterbug.ipa
Install signed.ipa on your device (I use https://diawi.com).
Follow osy's instructions on GitHub site to import pairings and support files as you mentioned in your post.
I hope that helps :-)
from jitterbug.
Sorry for the typographical error— I meant to write:
2. The app has not been fully signed correctly…
from jitterbug.
Related Issues (20)
- Utm
- Auto disable vpn after launch an JIT-enabled App HOT 1
- Pairing file not being generated? HOT 3
- jitterbug for UTM HOT 2
- Repeatedly packaged resource files
- Implement Single-Device Loopback using EM Proxy and WireGuard
- Xcode Developer Images for iOS 16 HOT 2
- Jitterbugpair for 86x HOT 2
- The app doesn’t work on iOS 17 HOT 5
- Pairing not working with VPN tunnel
- LOCKDOWN_E_INVALID_HOST_ID returned from lockdownd_client_new_with_handshake when attempting to pair with local device over Jitterbug VPN profile.
- Error while loading shared libraries HOT 4
- I dont have 2 devices HOT 1
- Failed to communicate with device.
- jit launch select image
- Remove passcode requirement for jailbroken devices from jitterbugpair HOT 3
- iOS 17 DDI System
- Jit Sharing
- JIT on iOS 17? HOT 2
- Precompiled version of jitterbugpair for raspberry pi
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jitterbug.