Using Xcode for multiple developer IDs - iphone

I am quite new all this iPhone stuff. I have no such clear IDea yet about provisioning profile etc.
I will be using my mac machine for two different developer IDs,one for my own and other for the startup where I am working in. Now,how can I use xCode to submit my apps in two different IDs?
thanks

You can explicitly specify a signing identity (as long as they have different names) and a provisioning profile GUID.
EDIT: CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer: John Doe (ABCDEF) and PROVISIONING_PROFILE[sdk=iphoneos*] = provisioning-profile-guid in the config (or on the command line). Or in the project settings, search for "sign" and use the nice GUI menu.
Alternatively, use a different user account for your work builds.
EDIT: System Preferences → Accounts and add a new user. It also helps if you enable fast user-switching under "Login Options".

Related

How do I decompile a .sis file?

I need to be able to view and edit a .sis file. Can anyone suggest the right way to do this please?
Basically, you could indeed extract stuff, modify them and re-pack them. there are tools that can help on this, for example SisContent claims to be able to do so, thus you could use this app at least for viewving the SIS.
Anyhow, the problem there is then the signing. If the app requires capabilities that are ok with Self-signing (and is not having any auto start feature etc.) then you could make own Self-signing certificate, either with the makekeys included in the SDK, or using OpenSSL. With SisContent, there also appears to be Self signing certificate included in it.
Anyhow note that following capabilities: ReadDeviceData, WriteDeviceData, PowerMgmt, ProtServ, SwEvent, SurroundingsDD, Trusted UI, CommDD, DiskAdmin, MultimediaDD, NetworkControl, CommDD, DiskAdmin, MultimediaDD and NetworkControl. Can not be used with self-signing, and as there is no ways on signing apps (and there were never a way on signing others apps) with real Symbian certificate having publicer ID. and thus these apps can not really be installed after they are modified.
Then again, if you are targeting for pre-3rd edition devices, then they are not requiring any signing, thus you could extract the files, modify them, and simply repack with makesis.
There is a software called unmakeSis.

Changing author name in Sign Key -BB10

I need to change the author name so is it possible if I change it in MANIFEST.MF file will it update the product in appworld?
If I sign with the a different sign key and change the package id of previous MANIFEST.MF I had so will that update the build I have in appworld?
Please tell me which of the above process would help me update the product with a different author name.
You can change the author in your IDE. Go to Windows | Preferences | BlackBerry | Signing and click Create Certificate giving the new Author name. This should allow you to upload your app using the same keys to BlackBerry World.
Make sure you back up your keys first, just in case anything goes wrong!
I'm not sure, but if you change any of those details you will need to upload as a new application, or BlackBerry World will reject it. If I were you I would
Contact BlackBerry World Vendor Support, they will help you out. They can reset those details

Same Bundle Id + Different Developer Accounts

We followed following steps and found strange output.
What would be possible reasons for these?
Steps:
Created ipa's for 2 different applications using 2 different distribution profiles (both the profiles belongs to 2 different developer accounts) but keeping bundle id same.
Actual Output: Both ipa's where treated as same i.e. 2nd ipa overridden the 1st one.
Expected Output: Both ipa's should be treated as different i.e. 2nd ipa shouldn't override 1st one.
Surprisingly same output was observed for same applications.
Thanks in advance.
iOS uses bundle identifier to distinguish applications from one another. If you sign two application using similar bundle identifier and try to install one after then it will show similar behavior(Actual output).
For example one application you com.example.user.zzz and another application has same id then iOS will treat them as same application. Installation/Removal of one over other will depend on the order of installation and application version.
So in your case you should provide two different bundle ids so that iOS can distinguish them.
Thanks,

Choosing the correct bundle ID in iTunes Connect.

I am preparing to submit an app to the App Store and have come across the following form. In the past when I have done this incorrectly it caused me a lot of grief which I would like to avoid this time around.
It is giving me a few options to choose from, but I'm not sure which one is correct. I would assume there is a way to check my Xcode project to be sure that the bundle IDs match. More specifically I would think that the form below would correspond to my bundle id name
where if my app is called AWESOMEAPP the correct bundle to choose should read EricBrotto.AWESOMEAPP or EricBrotto - *. In fact I don't have either as an option. What I do have is ericbrotto - *. That said could I just choose this one and change my Bundle identifier to ericbrotto.${PRODUCT_NAME:rfc1034identifier}?
Any clarification would be great!
I would get rid of the dollar signs, and enter explicitly com.ericbrotto.myawesomeapp into all of the provisioning portal, iTunes Connect and the Xcode Target Build settings. Or use a wildcard just for the provisioning profile.

How to share keychain data between iOS applications

I am describing a problem for which it took me quite some time to learn the answer.
The "GenericKeychain" example is a good start at providing a wrapper for sharing keychain data between applications when using the accessGroup in the init.
However, implementing this in my app yielded an obscure error code (which took forever to locate) -25243, which means: No access control.
I ran Apple's example app (GenericKeychain) on my iPad only to get the same error. Huh?
Does Apple's documentation fail to deliver on what is necessary to accomplish this?
After some (a lot of) digging throughout the web, I found the answer. The access Group that you use when constructing your KeychainItemWrapper class must ALSO be specified in each of your application's Entitlements.plist file in the "keychain-access-groups" section.
It seems almost obvious now that I see "keychain-access-groups". However, I had no idea to even look there. Hope this helps others.
Actually it's not hard to do. Please follow the steps.
App1:
Open your App's target Capabilities and enable KeyChain Sharing.
Add a identifier. (eg : com.example.sharedaccess)
Add "UICKeyChainStore" to your project.
Be sure you have a team id added to your App1 project.
Add Security.framework to your App1 project.
And add these codes to somewhere you need.
[UICKeyChainStore setString:#"someValue" forKey:#"someKey" service:#"someService"];
App2:
Open your App's target Capabilities and enable KeyChain Sharing.
Add a identifier. (eg : com.example.sharedaccess)
Add "UICKeyChainStore" to your project.
Be sure you have a team id added to your App2 project.
Add Security.framework to your App2 project.
And add these codes to somewhere you need.
NSString *string = [UICKeyChainStore stringForKey:#"someKey" service:#"someService"];
Your TeamIDs should be same for both projects.
I tried these steps on a real iPhone device.
I also tried these steps with Automatic and iOs Development provisioning profile.
My apps' bundle identifiers were like that : com.example.app1, com.example.app2.