sy6sy2 / xbmc

Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS and Windows.
https://kodi.tv/
Other
6 stars 1 forks source link

TvOS signing guide - including top shelf #57

Open phunkyfish opened 5 years ago

phunkyfish commented 5 years ago

Start of guide from @pogarek

  1. create two app ids (for example: com.something.kodi and com.something.kodi.topshelf)
  2. create one group app id (for example: group.com.something.kodi)
  3. create two provisioning profile (separate for both app id)
  4. download them
  5. in xcode project disable automatic signing for kodi target and topshelf target
  6. assign proper provisioning profiles to them
  7. build and test.
kambala-decapitator commented 5 years ago

@davilla I wanted to register app ID org.xbmc.kodi-tvos (${APP_PACKAGE}-${CORE_PLATFORM_NAME_LC}) in the dev portal, but that's already taken by someone else. What would you suggest to use instead? Maybe something like org.xbmc.kodi-darwin-embedded? (single ID can be used for both iOS and tvOS) In the end we can have 2 IDs:

Btw same issue was with org.xbmc.kodi-ios and org.xbmc.kodi.

davilla commented 5 years ago

Under who's account ? yours or team kodi ?

I'd stick with '.''s. That '-' might cause parsing confusion in the various places it is used. org.xbmc.kodi.osx org.xbmc.kodi.embedded

But if org.xbmc.kodi is taken, you have a problem. the 1st two are special. That means you need to pick something new. Who has org.xbmc.kodi... >

Note, choose carefully, once created, they are fixed in stone. They cannot be changed or reassigned.

phunkyfish commented 5 years ago

Maybe try:

tv.kodi.osx and tv.kodi.embedded?

If I’m understanding things right I think once you own the wildcard app id you can create any ids you need below that.

davilla commented 5 years ago

tv.kodi.darwin.osx tv.kodi.darwin.embedded

phunkyfish commented 5 years ago

Even better

So for wildcarding do you need both tv.kodi. and tv.kodi.darwin. or just the first one?

kambala-decapitator commented 5 years ago

Under who's account ? yours or team kodi ?

team kodi, of course

tv.kodi.darwin.osx tv.kodi.darwin.embedded

I wanted to use ${APP_PACKAGE} which is org.xbmc.kodi, but that's not a problem.

So for wildcarding do you need both tv.kodi. and tv.kodi.darwin. or just the first one?

but why would you need wildcarding?

davilla commented 5 years ago

if team kodi owns org.xbmc. and you are making app id's for your own usage. https://kodi.tv/ is own'ed by team kodi too, so it would be rude to take tv.kodi. , you don't own that reverse domain.

Remember, once taken, that app id is gone forever. It becomes exclusive to your dev account. App names are the same too... Once setup, gone as it becomes exclusive to your dev account.

org..kodi.

apple uses wildcarding internally :)

phunkyfish commented 5 years ago

I think the intention here is to take the app id’s under the team kodi dev account. I guess we should ask on slack is that ok to do.

kambala-decapitator commented 5 years ago

and you are making app id's for your own usage

no, I'd like to add the app ID to kodi's dev account, hence for usage of the kodi team / maintainers, that's why I'm asking for guidance/opinion...

Remember, once taken, that app id is gone forever

true, that's the point of our discussion :) And I'd like to create app ID that everyone agrees to.

I think the intention here is to take the app id’s under the team kodi dev account. I guess we should ask on slack is that ok to do.

you're abolsutely right. Initially I asked Keith in slack and he directed me to @davilla, so now we're here :)

phunkyfish commented 5 years ago

😁 so @davilla your call!

davilla commented 5 years ago

Not my call :) I'm a retired kodi dev. Sounds like the App id's have already been setup in team account. But you can't share them between accounts. So the question becomes, what are you really trying to do ?

If you are not a member in kodi dev account, and you want to test under your own account, then you need your own App Id. I would not pick anything that would create a problems with team kodi account.

App ID's are unique and become set for life. App Names are unique and become set for life. This also means that the App name for OSX cannot be the same for iOS/tvOS. See VLC. It's "VLC" for OSX, "VLC for mobile" for iOS/tvOS.

Choose carefully as you cannot 'undo' it.

phunkyfish commented 5 years ago

We are members of the kodi dev account so that should be ok. But it light of this being permanent maybe best to ask Keith if he’s ok with the names before setting them.

davilla commented 5 years ago

I'd check the existing App ID's. if org.xbmc.kodi.ios exists, use that for both ios/tvos, For iOS/tvOS, it can be the same App ID/App Name. Itunes connect supports it. When we 1st setup MrMC, we had separate App ID's for iOS and tvOS. That was a mistake and version 4.0 will drop "MrMC Touch" (iOS) and MrMC for tvOS will carry both.

kambala-decapitator commented 5 years ago

Sounds like the App id's have already been setup in team account

not at all. I believe someone created app ID by pressing "fix signing issues" in Xcode with his own dev account, so now nobody else can use that.

App Names are unique and become set for life

I think it's related only to appstore.

I'd check the existing App ID's

not much of help there :) Screen Shot 2019-05-03 at 00 08 02

to conclude, it's basically up to us what to choose.

I like these!

kambala-decapitator commented 5 years ago

@memphiz @Rechi do you agree with the choice of new bundle IDs that will be registered in Kodi dev account?

probably APP_PACKAGE variable in version.txt should be updated to tv.kodi as well to reflect the new domain. (but not sure if it might break anything)

Memphiz commented 5 years ago

I am fine with both - I am the one who might have the .org.xbmc ones used in my free account (more by accident when Xcode introduced the auto sign features)

kambala-decapitator commented 5 years ago

just thought about this: we'll have to use new bundle IDs only for development, as otherwise end users won't be able to install on top of their existing app.

phunkyfish commented 5 years ago

Can you explain this a bit more?

pogarek commented 5 years ago

i would say different : current release are just deb files. AFAIK :

For development we can use different app ids. For releases - original ids . Otherwise end users cannot upgrade existing Kodi installations and keep their data.

kambala-decapitator commented 5 years ago

different bundle IDs mean different apps. existing bundle IDs are org.xbmc.kodi / org.xbmc.kodi-ios / org.xbmc.kodi-tvos.

For development we can use different app ids. For releases - original ids . Otherwise end users cannot upgrade existing Kodi installations and keep their data.

exactly!

phunkyfish commented 5 years ago

How does top-shelf complicate this?

kambala-decapitator commented 5 years ago

top shelf is unrelated. the only requirement for its bundle ID is that it must start with containing app's bundle ID.

kambala-decapitator commented 5 years ago

registered both app IDs (and the group ID) in the dev portal. please write your ATV UDIDs, so I could add them and create a shared provisioning profile. Afterwards I'll share with you the private key that I used.

kambala-decapitator commented 5 years ago

@phunkyfish just in case, edit 2) in your first post: only one group app ID needs to be created

phunkyfish commented 5 years ago

Corrected 😉